ElasticSearch:常用的基础查询与过滤器
2019-08-27 07:14:15来源:博客园 阅读 ()
ElasticSearch:常用的基础查询与过滤器
match_all(获取所有索引文档)
quert_string(获取包含指定关键字文档)
默认查询_all字段,_all字段是由所有字段组合而成的,可以通过description:关键字,获取通过请求的时候来设置default_field。可使用AND和OR这种布尔操作符来组合词条搜索,也可以使用减号(-)来排除文档。
缺点:由于query_string可以通过组合条件来获取所有索引的文档,建议替换成term,terms,match或者multi_match查询
term查询和term过滤器
term可以指定搜索的文档字段和关键词(被搜索的关键词是没有经过分析的,所以返回的文档是精准匹配关键词的)term过滤器也可以是返回的结果包含指定关键词,但是无需计算得分,所以可以使用match_all,返回的所有文档_score都是1.0分。
terms查询
与term查询相似,允许查询多个关键词,通过minimum_should_match设置最低匹配几个关键词。
match查询
查询指定字段的关键词,也可以查询_all字段,match查询有多中方式,最常见的是布尔查询和词组。
1、布尔查询
默认情况下,match查询使用布尔行为和OR操作符。例如,如果搜索文本“Elasticsearch Denver”,Elasticsearch 会搜索“Elasticsearch OR Denver”,同时匹配“Elasticsearch Amsterdam’和“Denver Clojure Group”聚合分组。为了搜索同时包含“Elasticsearch” 和“Denver” 关键词的结果,将match字段的name修改为一个映射,并将operator字段设置为and,达到改变操作符的目的。
2、词组
在文档中搜索指定的词组时,phrase查询是非常有用的,每个单词的位置之间可以留有余地。这种余地称作slop,用于表示词组中多个分词之间的距离。假设你试图记起某个聚合分组的名字,只记得“Enterprise” 和“London” 两个词,但是不记得名字其余的部分了。你可以搜.索词组“enterprise london”,将slop设置为1或者2,而不是默认的0,如此-一来,没有必要知道分组的精确标题,就可以寻找包含该词组的结果。
phrase_prefix查询匹配最后一个关键词。在下面的例子中,phrase_ prefix查询使用的是“elasticsearch den”。Elasticsearch 使用“den”文本进行前缀匹配,查找所有name字段,发现那些以“den” 开始的取值(如“Denver”)。 由于产生的结果可能是个很大的集合,需要限制扩展的数量。
使用multi_ match来匹配多个字段
尽管很容易联想到,multi_ match查询和搜索单字段中多个匹配的词条查询,它们的行为表现会非常相像,但是两者的行为还是有细微的区别。多字段匹配允许你搜索多个字段中的值。在聚合的案例中,这一点非常有用,可以同时在分组的名称和描述中搜索某个字符串。
原文链接:https://www.cnblogs.com/35youth/p/11417641.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:Redis应用
- Spring Boot 教程 - Elasticsearch 2020-06-09
- JAVA中常用的类 2020-06-05
- 这 30 个常用的 Maven 命令你必须熟悉! 2020-05-28
- Elasticsearch如何有惊无险地入门,我是用心的 2020-05-28
- ElasticSearch7.4.2安装、使用以及与SpringBoot的整合 2020-05-27
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash