联接字段的文档计数不匹配

时间:2018-08-03 06:58:12

标签: elasticsearch

我有一个名为parent_child的索引,其中包含约250万份文档。索引存储具有父子关系的两个不同实体(userpurchases)的文档。即one user -> many purchases

它具有一个名为join的连接字段,用于声明上述关系。

user总数为 200万,而purchases总数为 50万

当我运行以下has_parent查询以获取所有具有user的购买商品时,

GET parent_child/_search?size=0
{
  "query": {
    "bool": {
      "filter": [
        {
          "has_parent": {
            "parent_type": "user",
            "query": {
              "match_all": {
              }
            }
          }
        }
      ]
    }
  }
}

它返回正确的文档数 500,000 。但是,相应的子查询将所有users与一个purchase

GET parent_child/_search?size=0
{
  "query": {
    "bool": {
      "filter": [
        {
          "has_child": {
            "type": "purchases",
            "query": {
              "match_all": {
              }
            }
          }
        }
      ]
    }
  }
}

仅返回 170,000 个文档,计数错误。

有人知道为什么has_child查询存在差异吗?

集群信息:我正在单节点Linux VM上使用ElasticSearch版本 6.3

1 个答案:

答案 0 :(得分:0)

我错误地认为df.write.format("com.databricks.spark.csv").save("pathToFile.csv") 将返回唯一匹配,这是问题的根源。没有错配。