я хочу сделать индекс Elasticsearch для чего-то КЛЮЧЕВЫХ СЛОВ, например .. хэштега. и сделать фильтр синонимов для КЛЮЧЕВЫХ СЛОВ.
Я думаю, что два способа индексирования ключевого слова, во-первых, сделать тип keyword
.
{
"settings": {
"keywordField": {
"type": "keyword"
}
}
}
если сделать индекс с League of Legends
возможно это.
{
"keywordField": ["leagueoflegends", "league", "legends", "lol" /* synonym */]
}
или text
введите:
{
"settings": {
"keywordField": {
"type": "text",
"analyzer": "lowercase_and_whitespace_and_synonym_analyzer"
}
}
}
Может быть, это.
{
"keywordField": ["league of legends"](synonym: lol => leagueoflegends)
}
если использовать _analyzer
api для этого поля, ожидает leagueoflegends, league, legends
поисковый запрос: 'lol', 'league of legends', 'League of Legends' должен соответствовать этому полю.
какая практика лучше?