Elasticsearch不在查询中的子类型的内部匹配
问题描述:
在elasticsearch上挣扎着内部匹配。将不胜感激任何帮助。Elasticsearch不在查询中的子类型的内部匹配
我有两种子类型:childA和childB。 我查询childA的父母这样
"query":{
"bool": {
"should": {
"has_child": {
"type": "ChildA",
"query": {
"match": {
"name": {
"query": "a"
}
}
}
}
}
}
}
我的问题是如何在结果中包括类型childB的所有子文档,以及在不影响从上面的查询结果。
我正在考虑对has_child查询(类型为childB)使用inner-hits,但我的查询不依赖于childB类型。
任何人有想法?
在此先感谢
答
我找到了一种方法来包含childB类型的文档。
我在过滤器查询中将以下查询与上述查询(childA类型的has_child)组合在一起以获取childB文档。我不确定它是否是一个好方法(考虑性能)
{
"query":{
"bool":{
"should":[
{
"bool":{
"must_not":[
{
"has_child":{
"type":"ChildB",
"query":{
"match_all":{}
},
"inner_hits":{}
}
}
]
}
},
{
"has_child":{
"type":"ChildB",
"query":{
"match_all":{}
},
"inner_hits":{}
}
}
]
}
}
}
它不清楚你想要存档的东西。 –
@TarasKohut对不起,我的问题没有明确指出。我找到了一种方法。其发布如下 –
请添加您的映射和您的数据的一些示例。也许我们可以给你一些更好的解决方案来解决你的问题。 – Eli