代码之家  ›  专栏  ›  技术社区  ›  Senorihl

elasticsearch 5:使用排除进行搜索

  •  0
  • Senorihl  · 技术社区  · 7 年前

    我尝试在索引中搜索人员(按名字和姓氏),这一部分相当简单:

    GET /my_index/persons/search
    {
        "query": {
            "query_string": {
                "query" : "john doe"
            }
        }
    }
    

    filter 子句,但我无法正确生成查询,你们能帮我吗?


    我试过了

    {
        "query":{
            "multi_match":{
                "query":"anne mirande",
                "fields":[
                    "first_name",
                    "last_name"
                ],
                "type":"cross_fields",
                "operator":"and"
            }
        },
        "filter":{
            "not":{
                "term":{
                    "id":1
                }
            }
        }
    }
    

    但它是这样的: [filter]中START\u对象的未知键。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Hatim Stovewala    7 年前

    你可以用这样的东西。

    GET /my_index/persons/search
    {
      "query": {
        "bool": {
          "must": [
            {"term": {
              "name": {
                "value": "john doe"
              }
            }}
          ],
          "must_not": [
            {"term": {
              "_id": {
                "value": "1"
              }
            }}
          ]
        }
      }
    }