Я пытаюсь создать полнотекстовый поисковый запросasticsearch, который соответствует следующим правилам.
- Запрос должен запустить поиск по всем полям в индексе.
- Результаты должны иметь все слова из запроса в виде слова или префиксов.
- Результаты, содержащие слова из запроса в виде слов вместо префикса, должны иметь больший приоритет в результатах.
Этоэто то, что у меня сейчас есть для поискового запроса "Джон Доу", и он работает:
{
"query":{
"query_string":{
"query":"(john AND doe) OR (john AND doe*) OR (john* AND doe) OR (john* AND doe*)",
"fields":[
"*",
"firstName^2",
"lastName^2"
],
"lenient":true
}
}
}
Я делаю это правильно или есть лучший способ сделать это?