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

获取子文档

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

    我有一个Elasticsearch索引。该索引中的每个文档都有一个编号(即1、2、3等)和一个名为 ChildDocumentIds _id 与此文档相关的文档的。

    我保存了一个名为“子文档”的搜索。我想使用数字(即1、2、3等)并获取与其关联的子文档。

    在Elastisearch中有没有办法做到这一点?为此,我似乎找不到在Elasticsearch中执行关系类型查询的方法。我知道会很慢,但我同意。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Jason Rosendale    7 年前

    这个 terms query 允许您这样做。如果文档#1000包含子文档3、12和15,则以下两个查询将返回相同的结果:

    "terms" : { "_id" : [3, 12, 15] }
    

    以及:

    "terms" : { 
      "_id" : {
        "index" : <parent_index>,
        "type" : <parent_type>,
        "id" : 1000,
        "path" : "ChildDocumentIds"
      }
    }
    

    它要求您第二次指定索引并键入的原因是terms查询支持跨索引查找。