如何在elasticsearch中使用match\u all中的筛选器

dvtswwa3  于 2021-06-14  发布在  ElasticSearch
关注(0)|答案(2)|浏览(434)

查询在下面 {"from" : 0, "size" : 100,"query": {"match_all": {}}}) 我需要 filter 从比赛开始 nametest 我试过了 {"from" : 0, "size" : 100,"query": {"match_all": {}}, "filter": [ "term": { "name": "test" }}]} 我收到错误“在[filter]中启动数组的密钥未知”。)

laximzn5

laximzn51#

您需要将查询 Package 在bool查询中,请尝试此搜索查询:

{
  "from":0,
  "size":10,
  "query": {
    "bool": {
      "must": {
        "match_all": {}
      },
      "filter": [
        {
          "term": {
           "grocery_name": "elastic"
          }
        }
      ]
    }
  }
}

更新1:
根据@nons提到的评论
搜索查询:
术语查询在提供的字段中包含确切术语的返回文档。

{
  "from":0,
  "size":10,
  "query": {
    "bool": {
      "must": {
        "match_all": {}
      },
      "filter": [
        {
          "term": {
           "parentName.keyword": "Developer"    <-- note this
          }
        }
      ]
    }
  }
}

搜索结果:

"hits": [
      {
        "_index": "stof_64275684",
        "_type": "_doc",
        "_id": "1",
        "_score": 1.0,
        "_source": {
          "id": "1",
          "name": "A",
          "parentName": "Developer",
          "Data": [
            {
              "id": "455",
              "name": "Google",
              "lastUpdatedDate": "2020-09-10",
              "parent_id": "1"
            }
          ],
          "Function": [
            {
              "id": "1",
              "name": "Major"
            }
          ]
        }
      }
    ]

您甚至可以使用匹配查询,在匹配之前对提供的文本进行分析。

{
  "from": 0,
  "size": 10,
  "query": {
    "bool": {
      "must": {
        "match": {
          "parentName": "developer"
        }
      }
    }
  }
}
xbp102n0

xbp102n02#

我建议使用ChromeElasticSearchHead插件。它允许非常容易地测试和运行针对elastic的搜索(功能类似于mysql workbech)。
请在下面找到使用插件的示例(条件和聚合的组合)。

相关问题