Здравствуй, Хабр.
Для поиска по CouchDB использую Elasticsearch.
Поиск осуществляется по Ф.И.О. В базе есть объект с полями name. last, name .first, name.middle.
Ищу так:
{
"query": {
"bool": {
"must": [
{
"multi_match": {
"query": "Петров Иван Сергеевич",
"fields": [
"name.last",
"name.first",
"name.middle"
]
}
}
]
}
},
"filter": {},
"from": 0,
"size": 20
}
И всё бы вроде хорошо, но при поиске проверяется соответствие каждому из полей по очереди.
Т.е. в результат попадут все Петровы, потом все Иваны, далее все Сергеевичи.
Нужно как-то объединить поля name. last, name .first, name.middle и осуществлять поиск по этому объединенному полю.
Кто нибудь знает, как это сделать?