我有一个名为parent_child
的索引,其中包含约250万份文档。索引存储具有父子关系的两个不同实体(user
和purchases
)的文档。即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 。
答案 0 :(得分:0)
我错误地认为df.write.format("com.databricks.spark.csv").save("pathToFile.csv")
将返回唯一匹配,这是问题的根源。没有错配。