elasticsearch intervals query的各种用法举例
Elasticsearch的intervals查询提供了一种有效的方式来匹配文本中的特定片段。以下是一些使用intervals查询的示例:
- 匹配特定的短语:
GET /index/_search
{
"query": {
"intervals": {
"field": "content",
"match": {
"query": "quick brown fox",
"max_gaps": 0
}
}
}
}
以上查询将匹配"content"字段中包含连续的"quick brown fox"短语的文档。
- 匹配具有特定顺序的短语:
GET /index/_search
{
"query": {
"intervals": {
"field": "content",
"all_of": [
{ "match": { "query": "quick", "max_gaps": 1 } },
{ "match": { "query": "brown", "max_gaps": 1 } },
{ "match": { "query": "fox", "max_gaps": 1 } }
]
}
}
}
以上查询将匹配"content"字段中包含相邻的"quick"、"brown"和"fox"短语的文档,它们的顺序必须一致,且最多允许一个间隔。
- 匹配具有指定间隔的短语:
GET /index/_search
{
"query": {
"intervals": {
"field": "content",
"all_of": [
{ "match": { "query": "quick", "max_gaps": 1 } },
{ "match": { "query": "brown", "max_gaps": 2 } },
{ "match": { "query": "fox", "max_gaps": 0 } }
]
}
}
}
以上查询将匹配"content"字段中包含相邻的"quick"、"brown"和"fox"短语的文档,它们的顺序必须一致,且"quick"和"fox"之间最多允许一个间隔,"brown"之间最多允许两个间隔。
- 使用正则表达式匹配:
GET /index/_search
{
"query": {
"intervals": {
"field": "content",
"match": {
"regex": "\\b[a-z]{5}\\b"
}
}
}
}
以上查询将匹配"content"字段中包含恰好有5个小写字母的单词的文档。
这些示例只是intervals查询的一部分用法。intervals查询还支持其他参数和操作符,可以根据具体需求进行调整和组合
原文地址: http://www.cveoy.top/t/topic/iXzX 著作权归作者所有。请勿转载和采集!