我有情况,我使用bool和filter,在数组上搜索具有字段类型为array的数组,如果我匹配一个,我想得到它,但它不起作用
使用['one', 'two', 'three']
进行搜索时,您希望获得甚至包含一个如下数组数据的东西
{
"created_at": "2018-01-01",
"tag": ['one']
},
{
"created_at": "2018-01-01",
"tag": ['one', 'four', 'ten']
},
{
"created_at": "2018-01-01",
"tag": ['two', 'three', 'ten']
},
我如下进行了各种尝试,但是它不起作用
{
"query": {
"bool": {
"filter": {"terms": {"tag": ['one', 'two', 'three']}}
}
}
}
{
"query": {
"bool": {
"filter": {"bool": {"should": {"terms": {"tag": ['one', 'two', 'three']}}}
}
}
}
}
我该怎么办?
{
"query": {
"bool": {
"filter": ????
}
}
}
答案 0 :(得分:0)
条款查询过滤器具有与任何提供的条款(未分析)匹配的字段的文档。
GET /_search
{
"query": {
"constant_score" : {
"filter" : {
"bool" : {
"should" : { "terms" : { "tag" : ["one","two","three"] } }
}
}
}
}
}