05.full_text match_bool_prefix match_phrase_prefix 查询
文章目录
- 1. match_bool_prefix查询
- 1.1. 参数
- 2. 短语查询
- 2.1 phrase_prefix_query
1. match_bool_prefix查询
match_bool_prefix查询会analyze其输入,并根据这些 term 构造一个bool查询。term查询中使用除最后一个词以外的每个term。最后一项在前缀查询中使用。 match_bool_prefix查询,例如
GET /_search
{"query": {"match_bool_prefix" : {"message" : "quick brown f"}}
}
等价于
GET /_search
{"query": {"bool" : {"should": [{ "term": { "message": "quick" }},{ "term": { "message": "brown" }},{ "prefix": { "message": "f"}}]}}
}
match_bool_prefix查询和match_phrase_prefix之间的重要区别是match_phrase_prefix查询将其 term 作为短语进行匹配,但是match_bool_prefix查询可以在任何位置匹配其 term 。上面的示例match_bool_prefix查询可以匹配包含quich brown fox 的字段,但也可以 brown fox quick 。它也可以匹配出现在任何位置的包含“fast”,“brown”和以f开头的 term 的字段。
1.1. 参数
默认情况下,将使用 analyzer 从查询字段的 mapping 中analyzematch_bool_prefix查询的输入文本。可以使用 analyzer 参数配置其他搜索 analyzer
GET /_search
{"query": {"match_bool_prefix": {"message": {"query": "quick brown f","analyzer": "keyword"}}}
}
match_bool_prefix查询支持对match查询所述的minimum_should_match和operator参数,并将设置应用于构造的布尔查询。在大多数情况下,构造的布尔查询中的子句数将是通过analyze查询文本产生的 term 数。
模糊性,prefix_length,max_expansions,fuzzy_transpositions和Fuzzy_rewrite参数可以应用于为除最终 term 以外的所有 term 构造的 term 子查询。它们对为最终 term 构造的前缀查询没有任何影响。
2. 短语查询
就是查询的词必须是按照顺序连着的
GET /_search
{"query": {"match_phrase": {"message": "this is a test"}}
}
对应的参数可以有
slop: 这个参数设置了连个term之间可以间隔几个term,默认为0,就是term必须是连着的
analyzer: 查询分词器
2.1 phrase_prefix_query
短语前缀查询
GET /_search
{"query": {"match_phrase_prefix": {"message": {"query": "quick brown f"}}}
}
query: 查询语句
analyzer: 查询分词器
max_expansions: 前缀查询最多匹配到的term的数量
slop: 在两个matching的term中间最多有slop个term,默认为0
zero_terms_query: 如果query都是停用词怎么办,none,就不会有结果, all,等价match_all搜索
相对而言,使用search_as_you_type 和completion suggester可能会有更好的效果
05.full_text match_bool_prefix match_phrase_prefix 查询相关推荐
- 理解elasticsearch的match_phrase_prefix查询
match_phrase match_phrase_prefix可以认为是match_phrase的增强版本,所以先了解一下match_phrase. match_phrase词组匹配会先解析检索词, ...
- MyBatis框架笔记05:MyBatis条件查询
目录 一.提出需求 二.创建学生映射器配置文件StudentMapper.xml 三.在Mybatis配置文件里注册StudentMapper.xml
- 06.full_text multi_match查询
文章目录 1. multi_match 简介 2. multi_match 查询类型 1. best_fields 2. most_fields 3. phrase和phrase_prefix 4. ...
- 03.full_text interval查询
文章目录 1. intervals query 简介 2. 样例 3. match 4. all_of 5. any_of 6. filter full text查询就是基于分词的查询,有很多分类 i ...
- 初识ElasticSearch(2) -文档查询之match查询 | 分词器
1. 分词器: 2. match查询: 2.1. 数据准备 - 创建带分词器的索引映射 2.2. 数据准备 - 添加文档 2.3. 数据准备 - 查看文本分词 2.4. 查询 - 映射有分词器的字段查 ...
- Elasticsearch:Elasticsearch 查询示例 - 动手练习(一)
在我之前的文章文章: Elasticsearch:有用的 Elasticsearch 查询示例 开始使用 Elasticsearch (2) 我列举了很多关于 Elasticsearch 查询的例子. ...
- multi_match 查询
文章目录 fields 和每个字段的增强 multi_match 查询的类型 best_fields most_fields phrase 和 phrase_prefix cross_fields c ...
- 一文搞懂match、match_phrase与match_phrase_prefix的检索过程
昨天为大家介绍了 ES系列06:ik分词+Full text queries 之match query.今天TeHero为大家分享 Full text queries 的 match_phrase ...
- elasticsearh中查询类型,term、match、match_all、multi_match、range、bool、boosting等
查询方式有如下几种: GET /<index>/_search GET /_search POST /<index>/_search POST /_search 一般分为如下几 ...
最新文章
- Linux系统的启动引导过程
- .NET Core 3.0之深入源码理解HealthCheck(一)
- FPGA学习笔记---Verilog延迟语句分析比较
- RabbitMQ入门:发布/订阅(Publish/Subscribe)
- chinapub matlab,MATLAB与通信仿真
- MATLAB实现追赶法
- 我的自定义Spring框架 | Spring核心功能结构
- 员工年终绩效考核表模板
- 【程序员必读】经验:编程的智慧
- 城市交通出行效率对比分析与思考
- 【Solidity】5.表达式和控制结构 - 深入理解Solidity
- Excel怎样从一串字符中的某个指定“字符”前后截取字符及截取字符串常用函数
- 【数据安全案例】案例汇总
- 操作:FTP服务器的搭建
- [Darktable]dt源码分析(未完)
- 如何学习一门编程语言
- 程序设计与算法郭炜老师的课堂笔记2
- VUE + howler.js 播放音频
- Windows Server2008 R2 设置NAT 让Hyper-V连接Internet
- 社交媒体是如何沦为黑客“赚钱”工具的?
热门文章
- 手把手教你玩转SOCKET模型:完成端口(Completion Port)详解
- 慎防ARP欺骗与网络嗅探(下篇)
- HDR:为用户打造的视觉盛宴
- 北京大学数字视频编解码技术国家工程实验室开源AVS2高清实时编码器
- 在浏览器中分析AV1码流
- Go标准库Context
- Hadoop之Hadoop基础知识面试复习
- openvswitch2.8.1 centos7.4 源码编译安装
- Hadoop权威指南 _03_第I部分Hadoop基础知识_第1章初识Hadoop.
- 基于注解进行bean的装配