У меня есть индекс местоположения, в котором много названий мест и их соответствующих стран.Точные совпадения с ElasticSearch (во время запроса)
Затем я хочу знать, имеются ли у нас местоположения с названием «Берлин» в стране с кодом страны «DE».
Вот мой код Java попытка:
SearchResponse response = client.prepareSearch("locations")
.setQuery(QueryBuilders.matchQuery("title", "Berlin"))
.setFilter(FilterBuilders.termFilter("country", "DE"))
.execute()
.actionGet();
Но это дает мне слишком много ответов, например, поиска для "Zoo Berlin" и т. д. Мне нужны точные соответствия.
(Но обратите внимание, что у меня есть другие сценарии, в которых желательны эта подстроке/поиск текста соответствие.)
Есть ли способ, чтобы решить, на запрашивая время, а не во время индексации, какое поведение (точный против проанализировано текст) хочет?
Точное совпадение, вы имеете в виду «берлин», должно соответствовать «Берлину»? – ramseykhalaf
Да, например. (И я не слишком много отношусь к делу.) Но если «Берлин» совпадает с «Berlin Hauptbahnhof», это проблематично. –