Поиск по разным полям

Всем привет.
Помогите организовать поиск по нескольким полям. Есть индекс вот с таким маппингом:
{
"russian_common": {
"mappings": {
"_doc": {
"fullname": {
"type": "text",
"copy_to": ["my_all_fields"],
"analyzer": "russian"
},
"about": {
"type": "text",
"copy_to": ["my_all_fields"],
"analyzer": "russian"
},
"marriage": {
"type": "text",
"copy_to": ["my_all_fields"],
"analyzer": "russian"
},
"my_all_fields": {
"type": "text",
"analyzer": "russian"
}
}

Мне надо реализовать запрос, который ищет сначала по полю my_all_field, например, "Сергей", а потом по полю marriage, например, "холост" Пока, с помощью bool запросов у меня получается поиск по полю my_all_field, а добиться того, чтобы и потом по полю marriage выполнялся поиск - не получается. Вот пример одного из моих запросов:

get russian_common/_search
{
     "from": 0,
     "size": 50,
      "query": {
          "bool":{ 
              "must": [{"match": {"about": {"query": "холост"}}}], 
              "should": [{"match": {"my_all_fields": {"query": "Сергей"}}}]
     }
  }
}

Помогите с примером.
Спасибо!

Найдено решение.

get russian_common/_search
        {
           "from": 0,
           "size": 50,
           "query": {
           "bool" : {
           "must" : [
                 {"match": {"my_all_fields": {"query": "Сергей",
                                                        "fuzziness": 0.5,
                                                        "prefix_length": 2}}},
                 {"match": {"about": {"query": "наука",
                                               "fuzziness": 0.5,
                                               "prefix_length": 2}}
                 } 
               ]
             }
           }
         }
1 Like

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.