文章目录

  • 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 查询相关推荐

  1. 理解elasticsearch的match_phrase_prefix查询

    match_phrase match_phrase_prefix可以认为是match_phrase的增强版本,所以先了解一下match_phrase. match_phrase词组匹配会先解析检索词, ...

  2. MyBatis框架笔记05:MyBatis条件查询

    目录 一.提出需求 二.创建学生映射器配置文件StudentMapper.xml 三.在Mybatis配置文件里注册StudentMapper.xml

  3. 06.full_text multi_match查询

    文章目录 1. multi_match 简介 2. multi_match 查询类型 1. best_fields 2. most_fields 3. phrase和phrase_prefix 4. ...

  4. 03.full_text interval查询

    文章目录 1. intervals query 简介 2. 样例 3. match 4. all_of 5. any_of 6. filter full text查询就是基于分词的查询,有很多分类 i ...

  5. 初识ElasticSearch(2) -文档查询之match查询 | 分词器

    1. 分词器: 2. match查询: 2.1. 数据准备 - 创建带分词器的索引映射 2.2. 数据准备 - 添加文档 2.3. 数据准备 - 查看文本分词 2.4. 查询 - 映射有分词器的字段查 ...

  6. Elasticsearch:Elasticsearch 查询示例 - 动手练习(一)

    在我之前的文章文章: Elasticsearch:有用的 Elasticsearch 查询示例 开始使用 Elasticsearch (2) 我列举了很多关于 Elasticsearch 查询的例子. ...

  7. multi_match 查询

    文章目录 fields 和每个字段的增强 multi_match 查询的类型 best_fields most_fields phrase 和 phrase_prefix cross_fields c ...

  8. 一文搞懂match、match_phrase与match_phrase_prefix的检索过程

    昨天为大家介绍了 ES系列06:ik分词+Full text queries 之match query.今天TeHero为大家分享  Full text queries 的 match_phrase ...

  9. elasticsearh中查询类型,term、match、match_all、multi_match、range、bool、boosting等

    查询方式有如下几种: GET /<index>/_search GET /_search POST /<index>/_search POST /_search 一般分为如下几 ...

最新文章

  1. Linux系统的启动引导过程
  2. .NET Core 3.0之深入源码理解HealthCheck(一)
  3. FPGA学习笔记---Verilog延迟语句分析比较
  4. RabbitMQ入门:发布/订阅(Publish/Subscribe)
  5. chinapub matlab,MATLAB与通信仿真
  6. MATLAB实现追赶法
  7. 我的自定义Spring框架 | Spring核心功能结构
  8. 员工年终绩效考核表模板
  9. 【程序员必读】经验:编程的智慧
  10. 城市交通出行效率对比分析与思考
  11. 【Solidity】5.表达式和控制结构 - 深入理解Solidity
  12. Excel怎样从一串字符中的某个指定“字符”前后截取字符及截取字符串常用函数
  13. 【数据安全案例】案例汇总
  14. 操作:FTP服务器的搭建
  15. [Darktable]dt源码分析(未完)
  16. 如何学习一门编程语言
  17. 程序设计与算法郭炜老师的课堂笔记2
  18. VUE + howler.js 播放音频
  19. Windows Server2008 R2 设置NAT 让Hyper-V连接Internet
  20. 社交媒体是如何沦为黑客“赚钱”工具的?

热门文章

  1. 手把手教你玩转SOCKET模型:完成端口(Completion Port)详解
  2. 慎防ARP欺骗与网络嗅探(下篇)
  3. HDR:为用户打造的视觉盛宴
  4. 北京大学数字视频编解码技术国家工程实验室开源AVS2高清实时编码器
  5. 在浏览器中分析AV1码流
  6. Go标准库Context
  7. Hadoop之Hadoop基础知识面试复习
  8. openvswitch2.8.1 centos7.4 源码编译安装
  9. Hadoop权威指南 _03_第I部分Hadoop基础知识_第1章初识Hadoop.
  10. 基于注解进行bean的装配