elasticsearch 排除elasticsearch查询中的子文档
给定如下文档结构:
elasticsearch 排除elasticsearch查询中的子文档,
elasticsearch,
elasticsearch,给定如下文档结构: { "a": "vala", "b": "valb", "c": { "ca": "valca", "cb": "valcb" }, "x": { "xa": "valxa", "xb": "valxb" }, "d": "vald", ... } 如何构造一个查询,以返回在“x”子文档之外的文档的任何字段中具有“搜索值”的文档 像这样的文档将被包
{
"a": "vala",
"b": "valb",
"c": {
"ca": "valca",
"cb": "valcb"
},
"x": {
"xa": "valxa",
"xb": "valxb"
},
"d": "vald",
...
}
如何构造一个查询,以返回在“x”子文档之外的文档的任何字段中具有“搜索值”的文档
像这样的文档将被包括在内:{“a”:“搜索值”},
{“c”:{“cb”:“搜索值”},
{“ggg”:“搜索值”,“x”:{“xa”:“valxa”}}
{“ggg”:“搜索值”,“x”:{“xa”:“搜索值”} 像这样的文档将不包括在内:
{“a”:“vala”},
{“a”:“vala”,“x”:{“xa”:“搜索值”}}
{“x”:“search_value”}我认为您可以使用突出显示查询获取您的点击,并使用通配符突出显示所有点击字段。因此,您需要自己过滤x 例如,在字段x中搜索值:
{
"fields": [],
"query": {
"term": {
"x": "search_value"
}
},
"highlight": {
"pre_tags" : [""],
"post_tags" : [""],
"fields": {
"*": {}
}
}
}
我认为您可以使用高亮显示查询来获取您的点击,并使用通配符来高亮显示所有点击字段。因此您需要自己筛选x 例如,在字段x中搜索值:
{
"fields": [],
"query": {
"term": {
"x": "search_value"
}
},
"highlight": {
"pre_tags" : [""],
"post_tags" : [""],
"fields": {
"*": {}
}
}
}
Thaks!不幸的是,我事先不知道字段列表(a、b、c等)。@Tomek我已经更新了我的答案,我使用
通配符来突出显示所有命中字段。但这样它也将包含x
字段。希望它能帮到你。Thaks!不幸的是,我不知道字段列表(a、b、c等)提前。@Tomek我已经更新了我的答案,我使用通配符来突出显示所有命中字段。但这样它也将包含x
字段。希望它能帮助你。你总是排除x字段吗?如果是,为什么索引它?你总是排除x字段吗?如果是,为什么索引它?