私は副社長を副社長、CEO を最高経営責任者などにマッピングしようとしていました。私の検索キーワードが VP の場合、Vice President の結果も表示されるようにしました。Searchkick gem は、これを達成するために使用したものです。
私は以下のような人のモデルを持っています
class Person < ApplicationRecord
searchkick merge_mappings: true,
word_start: [:name],
text_middle: [:title],
synonyms:[['vp', 'vice president'],
['it', 'information technology'],
['ceo', 'chief executive officer'],
['cto', 'chief technology officer']]
end
データ全体を再インデックスした後、インデックス メタデータを確認すると、これが表示されます
"analysis": {
"filter": {
"searchkick_synonym": {
"type": "synonym",
"synonyms": [
"vp,vicepresident",
"it,informationtechnology",
"ceo,chiefexecutive officer",
"cto,chieftechnology officer"
]
}
}
}
なぜこれは副大統領のようにスペースなしでマッピングされるのですか? これが、検索クエリで同義語が機能しない理由ですか? 作成したモデル クラスに問題はありますか?
注意: ElasticSearch バージョン: 7.6.0、SearchKick Gem: 4.3.0