@gussie.jones
Для того, чтобы сделать поиск в Elasticsearch по объединению нескольких полей, можно использовать функцию "multi_match".
Например, если у вас есть индекс "my_index" с полями "title" и "description", и вы хотите выполнить поиск по слову "apple" в обоих полях, вы можете использовать следующий запрос:
1 2 3 4 5 6 7 8 9 |
GET my_index/_search { "query": { "multi_match": { "query": "apple", "fields": ["title", "description"] } } } |
Этот запрос выполнит поиск в полях "title" и "description" с помощью функции "multi_match". Вы можете изменять список полей, указанных в "fields", чтобы настроить запрос на свои нужды.
Также можно использовать булевый запрос, чтобы выполнить поиск по объединению полей. Например, если вы хотите выполнить поиск по словам "apple" и "banana" в полях "title" и "description", вы можете использовать следующий запрос:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
GET my_index/_search { "query": { "bool": { "should": [ { "match": { "title": "apple" } }, { "match": { "description": "apple" } }, { "match": { "title": "banana" } }, { "match": { "description": "banana" } } ] } } } |
Этот запрос использует булевый запрос и функцию "match", чтобы выполнить поиск по словам "apple" и "banana" в полях "title" и "description". Функция "should" означает, что найденные документы должны содержать хотя бы одно из указанных слов.