Что не так в этом поисковом запросе elasti c? - PullRequest
0 голосов
/ 17 июня 2020

Я не могу понять, почему у меня нет результатов? Использование ES 2.

"query": {
      "filtered": {
         "query": {
            "match_all": {}
         },
         "filter": {
            "term": {
               "technical.techcolor": "red"
            }
         }
      }
   }

А вот информация из db, которую я ищу.

{"technical":
        [{
         "techname22": "test",
         "techcolor":"red",
         "techlocation": "usa"
        }],
    "audio":
        {
        "someAudioMetadata": "test"
        }
    }

1 Ответ

0 голосов
/ 17 июня 2020

Поскольку вы не указали свое сопоставление, я рассматриваю следующее сопоставление.

Сопоставление:

{
  "mappings": {
    "company": {
      "properties": {
        "technical": {
          "type": "nested"
        }
      }
    }
  }
}

Поисковый запрос:

{
  "query": {
    "filtered": {
      "query": {
        "match_all": {

        }
      },
      "filter": {
        "nested": {
          "path": "technical",
          "filter": {
            "term": {
              "technical.techcolor": "red"
            }
          }
        }
      }
    }
  }
}

Результат поиска:

"hits": {
        "total": 1,
        "max_score": 1.0,
        "hits": [
            {
                "_index": "demos",
                "_type": "company",
                "_id": "1",
                "_score": 1.0,
                "_source": {
                    "technical": [
                        {
                            "techname22": "test",
                            "techcolor": "red",
                            "techlocation": "usa"
                        }
                    ],
                    "audio": {
                        "someAudioMetadata": "test"
                    }
                }
            }
        ]
    }

Чтобы узнать больше о вложенных типах данных, вы можете обратиться к этой официальной документации и для запросов и Контекст фильтра см. это

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...