【发布时间】:2021-05-21 22:44:12
【问题描述】:
所以我在 Elasticsearch 中有一个搜索查询,它查询一个名为 myList 的字段。该列表内是元素。 elm1、elm2 和 elm3。我希望能够查询该列表,以便所有元素都必须匹配。例如:
myList: [{
elm1: "value1",
elm2: "value2",
elm3: "value4"
},
{
elm1: "value2"
elm2: "value3"
elm3: "value3"
},
{
elm1: "value3",
elm2: "value4",
elm3: "value5"
}]
如果我构造一个查询以搜索以下字段:elm1 = value1 and elm2 = value2 and elm3=value3,
"query": {
"bool": {
"must": [],
"filter": [
{
"bool": {
"filter": [
{
"bool": {
"should": [
{
"query_string": {
"fields": [
"myList.elm1.keyword"
],
"query": "value1"
}
}
],
"minimum_should_match": 1
}
},"bool": {
"filter": [
{
"bool": {
"should": [
{
"query_string": {
"fields": [
"myList.elm2.keyword"
],
"query": "value2"
}
}
],
"minimum_should_match": 1
}
},"bool": {
"filter": [
{
"bool": {
"should": [
{
"query_string": {
"fields": [
"myList.elm3.keyword"
],
"query": "value3"
}
}
],
"minimum_should_match": 1
}
}
}
]
}
}
它会返回真,因为
myList[0]['elm1']=value1
myList[0]['elm2']=value2
myList[1]['elm3']=value3
这不是我想要的。
我如何得到它这样的
myList[x]['elm1']=value1
myList[y]['elm2']=value2
myList[z]['elm3']=value3
其中 x=y=z
【问题讨论】:
标签: elasticsearch kibana