当前位置: 首页 > 面试题库 >

在Elasticsearch中搜索具有相同值的文档

凌景辉
2023-03-14
问题内容

我有一个看起来像这样的架构:

{
  "mappings": {
    "entity": {
      "properties": {
      "a": {
        "type": "text"
      },
      "b": {
        "type": "text"
      }
    }
  }

我想找到b的所有值,其中b的值由2个或更多实体共享:

查询依据:

[{"a": "a1", "b": "b1"}, 
 {"a": "a1", "b": "b2"}, 
 {"a": "a2", "b": "b3"}]

应该返回b1b2


问题答案:

您可以使用2 termsa字段对字段进行聚合min_doc_count,然后添加top_hits子聚合以找到匹配的b字段:

{
  "size": 0,
  "aggs": {
    "dups": {
      "terms": {
        "field": "a",
        "min_doc_count": 2
      },
      "aggs": {
        "b_hits": {
          "top_hits": {
            "_source": "b"
          }
        }
      }
    }
  }
}


 类似资料:
  • 问题内容: 映射: 分行文件: 员工证件: 我想查找具有父ID的文档,我尝试了以下查询: 但是ES没有返回结果。如何在Elasticsearch中搜索具有相同父ID的子文档? 问题答案: 将在OP。有无效是没有叫父在外地类型。 以下是有效查询的示例:

  • 我试图搜索一个表(表1),以获取每列具有相同值(amount、dayofweek和category)的行。然后,我想将这些行复制到一个新表中(表2)。 从上面的场景中,我想从TABLE1复制第1行和第3行的内容并将它们插入到TABLE2中。关于如何在Android上为SQLite编写代码的任何建议?

  • 假设我有这个给定的数据 当我搜索最喜欢丰田车的人时,每当我查询这个数据时,它都会返回这个数据 结果是两个名为ABC的记录。如何只选择不同的文档?我想得到的结果只有这个 这是我的问题 我正在使用ElasticSearch 1.0.0。使用java api客户端

  • "在Elasticsearch中设计索引以便" 我们如何使Elasticsearch返回相同的结果,无论搜索是否使用"and"作为查询字符串或&" 例如,有一个查询来查找包含“和/”的所有电影标题 先生。 所以在这种情况下,搜索是否用“和”或“ 从我的Kibana开发工具中转储 放置测试索引{“设置”:{“副本的数量”:0,“碎片的数量”:1},“映射”:{“文档”:{“属性”:{“电影名称”:{

  • 背景我有一个小索引与一些字符串字段(例如名称,街道,城市,电子邮件)。 和类似于 Lorem ipsum dolor sit amet,consectetuer adipiscing Elit。埃尼·康茂多·利古拉·埃盖特·多洛。埃尼安·马萨。同时也是一个社会成员,即natoque penatibus et magnis dis matraft montes,nascetur loomus mus

  • 问题内容: 我正在尝试在ElasticSearch中运行类似的字段查询: 意思是我正在尝试查找所有文档,其中产品名称在这种情况下是’milk’的子字符串。 我该怎么做? 问题答案: 我会使用一个使用ngrams的自定义分析器。首先创建一个像这样的索引: 然后,您可以索引一些数据: 最后,您可以像这样搜索: 然后您将获得前两个文档,