当前位置: 首页 > 知识库问答 >
问题:

在ElasticSearch中从结果文档中排除字段

汪明德
2023-03-14

我想从ElasticSearch的结果文档中排除一个字段。我浏览了ElasticSearch.org的这个文档http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-fields.html但当我尝试时,这不起作用。我在SO上看到了同样的问题。有没有办法在Elasticsearch查询中排除一个字段,但不幸的是,这也没有给出答案,只是粘贴了ElasticSearch站点的示例。这是我的代码

{
        "query":
        {
             "multi_match": {
                  "fields": [
                  "user",
                  "email"
                  ],
                  "query": "John",
                  "operator": "and",
                  "type": "phrase_prefix"
              }
        }
    },
        "partial_fields" : {
        "partial1" : {
            "exclude" : "email"
        }
    },
        "from" : 0,
        "size" : 10
}

这是上述查询的结果

{
"took": 5,
"timed_out": false,
"_shards": {
    "total": 5,
    "successful": 5,
    "failed": 0
},
"hits": {
    "total": 2,
    "max_score": 1,
    "hits": [
        {
            "_index": "abc",
            "_type": "users",
            "_id": "4",
            "_score": 1,
            "_source": {
                "user": "John Smith",
                "email": "johnsmith_88@yahoo.com",
                "pic": "95052dc5bb0bd2575.01687359.jpg"
                "utype": "m"
            }
        },
        {
            "_index": "abc",
            "_type": "users",
            "_id": "1",
            "_score": 1,
            "_source": {
                "user": "Johnathan",
                "email": "johnathan@ymail.com",
                "pic": "428952deea899c6ad3.87100416.jpg"
                "utype": "m"
            }
        }
    ]
}
}

在上面的查询中,一切正常,但这也提供了电子邮件字段的结果,我想将此电子邮件字段排除在结果文档中。

共有1个答案

司空锋
2023-03-14

因为它是用该查询解决的,所以有一个错字。有几种方法可以在发送前检查您的查询。

  • 要么安装elasticsearch-head插件,帮助您通过简单实用的界面进行查询
  • 或者,在基本级别上,您可以使用json解析器网站。例如:http://json.parser.online.fr/
 类似资料:
  • 问题内容: 我需要在所有索引到Elasticsearch的文档中删除一个字段。我该怎么做。任何删除查询都可以帮助我实现这一点。 问题答案: @backtrack所说的是对的,但是在Elasticsearch中有一种非常方便的方法。Elasticsearch将抽象出删除的内部复杂性。您需要使用更新API来实现- 您可以在此处找到更多文档。 注意:从Elastic Search 6开始,您需要包括一个

  • 我在ElasticSearch中索引了很多产品。我需要从ElasticSearch中的查询中排除ID列表(我从SQL数据库中获取)。假设产品存储为, 我们基于使用ElasticSearch的一些算法向客户显示推荐产品的列表。如果一个顾客把一个产品标记为‘不感兴趣',我们就不必再给他看那个产品了。我们将这些产品保存在一个单独的SQL表中,表中有product_id、customer_id,状态为'n

  • 如果我们有如下查询 返回预期的结果(如下所示) 正如您所看到的,查询是针对和我们希望从结果中排除其他字段,但只包括和的字段 并排除其他字段,例如,以下是一些不是或(传递到查询中的字段)的字段-从

  • 我有一个索引(名称:“index1”)指向ElasticSearch中的多个文档。 文档的格式(json)是- 下面是映射- 我在ES查询中哪里做错了?

  • 问题内容: 这是我从数据库中获取用户bean的方法。 这将从数据库返回所有用户记录。有趣的是,我不想从数据库获取密码字段。只想在检索时排除该字段。 我有选择 1)在其他领域使用投影。这需要更多代码才能添加到投影列表中。所以放弃了这个想法。 2)使用Sql,我需要编写一个手动查询,这会杀死Hibernate的主题。 是否有可能排除Bean的列值? 问题答案: 假设以下是您的POJO: User.ja

  • 问题内容: 我如何执行搜索,排除字段具有特定值的结果? 我有一个Reddit评论数据库,我想找到提及比特币的信息,但不包括bitcoin subreddit。 错误很长,无法在此处发布。https://gist.github.com/kylelk/feca416156712eebad3e 问题答案: 这是愚蠢的错误, 您必须在query中包含过滤查询。这是修改 希望这可以帮助!!