赞
踩
全文检索可以让你搜索已被分词的域,例如邮件的正文内容。查询字符串使用索引期间应用于字段的相同分析器处理查询字符串。
包含了已下查询方式:
允许对匹配项进行细粒度控制的顺序和接近性的全文查询。
根据匹配项的顺序和接近程度返回文档
间隔查询使用匹配规则,该规则由一小组定义构成。然后将这些规则应用于指定字段中的术语。
定义产生的最小间隔序列跨越了文本主体中的各个术语。这些间隔可以由父源进一步合并和过滤
以下间隔搜索将返回包含以下内容的文档: 最喜欢的食物,没有任何缝隙,然后在my_text字段中添加热水或冷粥
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" } } ] } } ] } } } } }
原文地址:https://www.elastic.co/guide/en/elasticsearch/reference/7.12/query-dsl-intervals-query.html
时间间隔的顶级参数
(必填,规则对象)您要搜索的字段
此参数的值是一个规则对象,用于根据匹配的术语,顺序和接近度来匹配文档
有效的规则包含如下:
match 参数 匹配以分词的文本
(必需,字符串)希望在提供的<field>中找到的文本
(可选,整数)匹配项之间的最大位置数。除此以外的术语均不视为匹配项。默认为-1
(可选,布尔值)如果为true,则匹配项必须以其指定顺序出现。默认为false
(可选,字符串)分析器,用于分析查询中的术语。默认为顶级<field>的分析器
(可选,间隔过滤器规则对象)可选间隔过滤器
(可选,字符串)如果指定,则匹配此字段而不是顶级<field>的间隔。
使用该字段中的搜索分析器分析术语
前缀规则匹配以指定字符集开头的术语,此前缀可以扩展以匹配最多128个术语,如果前缀匹配的项超过128个,Elasticsearch返回错误,您可以在字段映射中使用index-prefixes选项来避免此限制.
必需,字符串)您希望在顶级<field>中找到的术语的开头字符
(可选,字符串)分析器,用于规范化前缀。默认为顶级<field>的分析器
可选,字符串)如果指定,则匹配此字段而不是顶级<field>的间隔
除非使用单独的分析器,否则使用此字段中的搜索分析器将前缀标准化
通配符规则使用通配符模式匹配术语,此模式最多可以扩展为匹配128个字词,如果模式匹配的项超过128个,Elasticsearch返回错误。
(必需,字符串)通配符模式,用于查找匹配项
可选,字符串)分析器,用于规范化模式。默认为顶级<field>的分析器
(可选,字符串)如果指定,则匹配此字段而不是顶级<field>的间隔
模糊规则匹配与提供的术语相似的术语,在由模糊度定义的编辑距离内,如果模糊扩展匹配128个以上的项,Elasticsearch返回错误。
(必需,字符串)要匹配的术语
(可选,整数)创建扩展时保留不变的开始字符数。默认为0
(可选,布尔值)指示编辑是否包括两个相邻字符的转置(ab→ba)。默认为true
(可选,字符串)匹配允许的最大编辑距离。有关有效值和更多信息,请参见模糊性。默认为自动
(可选,字符串)分析器,用于对术语进行规范化。默认为顶级的分析器
(可选,字符串)如果指定,则匹配此字段而不是顶级的间隔
all_of规则返回匹配其他规则组合的匹配项
必需,规则对象数组)要组合的规则数组。所有规则都必须在文档中产生匹配项,以使整个源匹配
可选,整数)匹配项之间的最大位置数。由规则产生的间隔比此间隔更远的间隔不视为匹配项。默认为-1
(可选,布尔值)如果为true,则规则产生的间隔应按指定的顺序显示。默认为false
(可选,间隔过滤器规则对象)用于过滤返回的间隔的规则
any_of规则返回其任何子规则产生的间隔
(必需,规则对象数组)要匹配的规则数组
(可选,间隔过滤器规则对象)用于过滤返回的间隔的规则
过滤规则基于查询返回间隔。有关示例,请参见过滤器示例
(可选,查询对象)用于返回间隔的查询,该间隔遵循过滤规则的间隔
(可选,查询对象)查询用于返回在过滤规则的时间间隔之前发生的时间间隔
(可选,查询对象)用于返回过滤规则中某个间隔所包含的间隔的查询
(可选,查询对象)用于返回包含来自过滤规则的间隔的间隔的查询。
(可选,查询对象)用于返回过滤规则中某个间隔未包含的间隔的查询
(可选,查询对象)用于返回不包含来自过滤规则的时间间隔的时间间隔的查询
(可选,查询对象)查询用于返回与过滤规则中的间隔不重叠的间隔
(可选,查询对象)用于返回与过滤规则中的间隔重叠的间隔的查询
(可选,脚本对象)用于返回匹配文档的脚本。该脚本必须返回布尔值true或false。有关示例,请参见脚本过滤器。
以下搜索包括过滤规则。它返回文档,文档中彼此之间有10个位置的单词“ hot”和“粥”,而中间没有“ salty”
POST _search { "query": { "intervals" : { "my_text" : { "match" : { "query" : "hot porridge", "max_gaps" : 10, "filter" : { "not_containing" : { "match" : { "query" : "salty" } } } } } } } }
间隔查询始终将间隔最小化,以确保查询可以线性运行。有时这可能会导致令人惊讶的结果,尤其是在使用max_gaps限制或过滤器时。
POST _search { "query": { "intervals" : { "my_text" : { "match" : { "query" : "salty", "filter" : { "contained_by" : { "match" : { "query" : "hot porridge" } } } } } } } }
POST _search { "query": { "intervals" : { "my_text" : { "all_of" : { "intervals" : [ { "match" : { "query" : "the" } }, { "any_of" : { "intervals" : [ { "match" : { "query" : "big" } }, { "match" : { "query" : "big bad" } } ] } }, { "match" : { "query" : "wolf" } } ], "max_gaps" : 0, "ordered" : true } } } } }
POST _search { "query": { "intervals" : { "my_text" : { "any_of" : { "intervals" : [ { "match" : { "query" : "the big bad wolf", "ordered" : true, "max_gaps" : 0 } }, { "match" : { "query" : "the big wolf", "ordered" : true, "max_gaps" : 0 } } ] } } } } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。