我有以下查询:
GET _search
{
"query": {
"bool" : {
"must" : {
"match" : { "log": "a perfect phrase" }
},
"filter":
{
"range": {
"time": {
"gte": "now-10m",
"lte": "now"
}
}
}
}
}
}
但是,有时我会得到一些文档,其中包含
a perfect phrase
中的某些单词,但不完全是a perfect phrase
。我只想保留包含此确切字符串的文档,而不保留包含几乎此字符串的文档。由于此字符串通常包含在更大的文档中,该文档可以包含随机数据,因此我认为我不能使用
term
关键字。如何查找
log
字段完全包含此字符串的所有文档?
最佳答案
您可以使用match_phrase
代替match
。
因此,基本上,您的搜索查询如下:
GET your-index-name/_search
{
"query": {
"bool" : {
"must" : {
"match_phrase" : { "log": "a perfect phrase" }
},
"filter":
{
"range": {
"time": {
"gte": "now-10m",
"lte": "now"
}
}
}
}
}
}
有关更多信息,请引用此link。
关于elasticsearch - Elasticsearch子字符串必须包含在字段中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52887127/