Я использую Elasticsearch для [частичного] поиска в нескольких словах.Я делю поисковый запрос по пробелам и создаю узел "multi_match" для каждого слова.
Это пример полного списка слов:
- Дорога на холм
- High Garden Road
- H & M Oxford Road
- Hammersmith Road
Это образец сгенерированного поискового запроса, когда я ищу "hi road"
{
"query": {
"bool": {
"must": [
{
"multi_match": {
"query": "hi",
"fields": [
"full_text"
],
"type": "phrase_prefix"
}
},
{
"multi_match": {
"query": "road",
"fields": [
"full_text"
],
"type": "phrase_prefix"
}
}
]
}
},
"size": 200
}
Я ожидаю, что он вернет "Hill road" и "High garden road", что он и делает.
Теперь, если я ищу "h road", он возвращает только "H &М оксфорд роуд "но я ожидаю, что он вернет все 4 пункта.Это почему?Существует ли минимум две буквы в запросе multi_match?Если так, как я могу преодолеть это?
Спасибо