我有一个索引,其中包含5个字段的以下文档结构。我写了一个搜索查询,如下所示:
{
"query": {
"query_string": {
"fields": [
"field1.keyword",
"field2.keyword",
"field3.keyword"
],
"query": "*abc*"
}
},
"from": 0,
"size": 1000
}
这很好用,但是作为一项新要求,我只需要在field4具有给定值的一组假设(1,2,3)的文档中进行搜索,并忽略其余文档。 对于我来说,可以获得一个field4值的列表,这些值将被忽略,因为它们以跳过状态出现在db中。 请提出相同的解决方案。谢谢。
答案 0 :(得分:0)
我建议在布尔查询中使用过滤器查询来匹配满足条件的文档。
{
"query": {
"bool": {
"must": {
"query_string": {
"fields": [
"field1.keyword",
"field2.keyword",
"field3.keyword"
],
"query": "*abc*"
}
},
"filter": {
"terms": {
"field4.keyword": [1, 2, 3]
}
}
}
}
}