0

我不明白为什么我没有结果?使用 ES 2。

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

这是我正在搜索的来自 db 的信息。

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

1 回答 1

0

由于您尚未指定映射,因此我正在考虑以下映射。

映射:

{
  "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"
                    }
                }
            }
        ]
    }

要了解有关嵌套数据类型的更多信息,您可以参考这个官方文档,对于查询和过滤上下文,请参考这个

于 2020-06-17T13:11:37.947 回答