Elasticsearch Intervals 查询:用法示例与指南
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 查询还支持其他参数和操作符,可以根据具体需求进行调整和组合。
原文地址: https://www.cveoy.top/t/topic/qDzx 著作权归作者所有。请勿转载和采集!