Как написать запрос, чтобы найти данные во вложенных и не вложенных полях вместе - PullRequest
0 голосов
/ 16 февраля 2019

Я хотел бы найти поиск по нескольким полям.

Итак:

GET my_doc/_search
{
  "query": {
    "multi_match" : {
      "query":    "text", 
      "fields": [ "state", "city"] 
    }
  }
}

Обычно этот запрос работает , но он не поиск в вложенных полях.

Но этот работает только для вложенных полей:

GET my_doc*/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "nested": {
            "path": "images",
            "score_mode": "max", 
            "query": {
              "bool": {
                "must": [
                  {"match": {"images.description": "Subject" }},
                  {"match": {"images.Number": "10004" }}
                ]
              }
            }
          }
        }
      ]
    }
  }
}

Мой вопрос:

Как написать запросискать везде - просто объединить мои запросы вместе, чтобы найти в "images" месте тоже.

1 Ответ

0 голосов
/ 16 февраля 2019

Я нашел решение, просто чтобы объединить запросы:

 GET my_doc*/_search
    {
      "query": {
        "bool": {
          "must": [
            {
              "multi_match" : {
                "query":    "LAKE", 
                "fields": [ "state", "city"] 
              }
            },

            {
              "nested": {
                "path": "images",
                "score_mode": "max", 
                "query": {
                  "bool": {
                    "must": [
                       {"match": {"images.description": "Subject" }},
                       {"match": {"images.Number": "10004" }}
                    ]
                  }
                }
              }
            }
          ]
        }
      }
    }
...