Elasticsearch 子字符串必须包含在字段中
Elasticsearch substring must be contained in field
我有以下查询:
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 了解更多信息。
我有以下查询:
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 了解更多信息。