我正在运行7.2 ELK堆栈,并且试图在1个搜索字词中搜索500个可能的值,例如:
作者:Bill OR作者:Jim OR作者:Tim OR作者:Steve OR作者:Sam ...
我试图将列表剪切并粘贴到搜索栏中,但这似乎效果不佳。有人对如何搜索像这样的列表有任何建议吗?
谢谢
答案 0 :(得分:0)
如果值是术语(单个词),则可以使用terms query,否则必须将match_phrase与bool query一起使用
返回在提供的字段中包含一个或多个确切术语的文档。 术语查询与术语查询相同,不同之处在于您可以搜索多个值。
"query": {
"terms": {
"author": [
"bill", "jim", "tim", "steve", "sam"
]
}
}
注意:使用术语查询时,我们必须小写每个作者
"query": {
"bool": {
"should": [
{
"match_phrase": {
"author": "Bill"
}
},
{
"match_phrase": {
"author": "Jim"
}
},
{
"match_phrase": {
"author": "Tim"
}
},
{
"match_phrase": {
"author": "Steve"
}
},
{
"match_phrase": {
"author": "Sam"
}
}
]
}
}