elasticsearch - elasticsearch 5:排除搜索

标签 elasticsearch elasticsearch-5

我尝试在人的索引上搜索(按名字和姓氏),这部分非常简单:

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

另外,我想排除具有特定ID的人,我尝试了filter子句,但是我无法正确地构成查询,你们可以帮助我吗?

编辑

我试过了

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

但这是这样的: [过滤器]中START_OBJECT的未知键。

最佳答案

您可以使用类似这样的东西。

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

关于elasticsearch - elasticsearch 5:排除搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46215506/

相关文章:

Elasticsearch:关闭单个本地节点的日志记录

node.js - 如何每小时在AWS上运行Node.js项目?

elasticsearch - 过滤器聚合中的 bucket_script 引发错误

c# - 在 Elasticsearch 嵌套 c# 中循环遍历聚合

ssl - 如何在 elasticsearch 5.5 中设置 server.name?

python - ElasticSearch 字段提升

elasticsearch - 如何使用logstash处理由空格分隔的文本文件?

elasticsearch - 在 ElasticSearch 中返回部分嵌套文档

elasticsearch - Elasticsearch 如何使用不得在过滤器内查询

elasticsearch - Elasticsearch的每条记录是否与一个查询中的所有其他记录匹配?