Elasticsearch Intervals Query
返回基于匹配术语的顺序和接近度的文档。
intervals
查询使用 匹配规则,这些规则由一小组定义构建而成。这些规则然后应用于指定 field
中的术语。
这些定义生成覆盖文本中术语的最小间隔序列。这些间隔可以进一步由父源组合和过滤。
以下 intervals
查询返回包含 my favorite food
(没有任何间隔),后跟 hot water
或 cold porridge
的文档。查询应用于 my_text
字段。
这个查询将匹配 my_text
值为 my favorite food is cold porridge
,但不匹配 when it's cold my favorite food is porridge
。
JSON复制
POST _search
{
"query": {
"intervals" : {
"my_text" : {
"all_of" : {
"ordered" : true,
"intervals" : [
{
"match" : {
"query" : "my favorite food",
"max_gaps" : 0,
"ordered" : true
}
},
{
"any_of" : {
"intervals" : [
{ "match" : { "query" : "hot water" } },
{ "match" : { "query" : "cold porridge" } }
]
}
}
]
}
}
}
}
}
Intervals 查询的顶级参数
<field>
(必需,规则对象)您希望搜索的字段。
此参数的值是一个规则对象,用于基于匹配术语、顺序和接近度匹配文档。
有效的规则包括:
-
match
-
prefix
-
wildcard
-
regexp
-
fuzzy
-
range
-
all_of
-
any_of
match
规则参数
match
规则匹配分析过的文本。
-
query
:-
(必需,字符串)您希望在提供的
<field>
中找到的文本。
-
-
max_gaps
:-
(可选,整数)匹配术语之间的最大位置数。超过此距离的术语不被视为匹配。默认值为
-1
。 -
如果未指定或设置为
-1
,则匹配没有宽度限制。如果设置为0
,术语必须相邻。
-
-
ordered
:-
(可选,布尔值)如果为
true
,匹配术语必须按指定顺序出现。默认值为
-