Я пытался сопоставить вице-президента с вице-президентом, генерального директора с генеральным директором и так далее. Чтобы, когда мое ключевое слово для поиска было VP, я мог видеть результаты и с вице-президентом. Драгоценный камень Searchkick — это то, что я использовал для достижения этой цели.
У меня есть модель человека, как показано ниже
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"
]
}
}
}
Почему это отображено как вице-президент без пробела? Это причина того, что синонимы не работают в моем поисковом запросе? Есть ли проблема в созданном мной классе модели?
NB: версия ElasticSearch: 7.6.0, SearchKick Gem: 4.3.0