Задать вопрос
@andreychumak
junior

Как работают синонимы в Elasticsearch?

Я создаю индекс с настроенным анализатором. Устанавливаю правила для синонимов.
Пример из документации:
curl -X PUT "localhost:9200/test_index" -H 'Content-Type: application/json' -d'              
{
    "settings": {
        "index" : {
            "analysis" : {
                "filter" : {
                    "synonym" : {
                        "type" : "synonym_graph",
                        "synonyms" : [
                            "lol, laughing out loud",
                            "universe, cosmos"
                        ]
                    }
                }
            }
        }
    }
}
'


Дальше я создал документ:
curl -X PUT "localhost:9200/test_index/_doc/2?pretty" -H 'Content-Type: application/json' -d'
{
  "name": "laughing out loud"
}
'


Сейчас, по идее, по запросу
curl -X GET "localhost:9200/test_index/_search?q=lol&pretty"

Должна возвращаться запись, созданная ранее - name: "laughing out loud"
Но у меня она не возвращается.

Подскажите что я делаю не так, может что-то пропустил или порядок действий неправильный?
  • Вопрос задан
  • 2641 просмотр
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
Кроме задания фильтра, еще нужно создать свой анализатор и прикрепить его к нужному полю через маппинг. Вот, в недавней статье на хабре как раз делается правильный маппинг - https://habr.com/post/428814/
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы