1、match   轻量级搜索

 GET /wymlib/_search

 {
"query": {
"match": {
 "title": "王阳明"
}
}
}

上面的查询匹配就会进行分词,比如"王阳明"会被ik分词器分为"王阳明" ,"阳明", "王","阳","明" 那么所有包含这些词中的一个或多个的文档就会被搜索出来。并且根据lucene的评分机制(TF/IDF)来进行评分。

2、match_phrase   短语搜索

 GET   /wymlib/_search

 {
"query": {
"match_phrase": {
"title": "王阳明"
}
}
}

match_phrase要求只匹配上"王阳明"这个短语,完全匹配可能比较严,我们会希望有个可调节因子,少匹配一个也满足,那就需要使用到slop

 {
"query": {
"match_phrase": {
"title" : {
"query" : "王阳明",
"slop" : 1
}
}
}
}

3、multi_match   多字段匹配

如果我们希望两个或两个以上的字段进行匹配,其中一个字段能匹配上就满足的话,使用multi_match

 {
"query": {
"multi_match": {
"query": "王阳明第三卷",
"fields": [
"title",
"keywords",
"author"
]
}
}
}

multi_match中有三种类型即: best_fields 、 most_fields 和 cross_fields (最佳字段、多数字段、跨字段)

1) 我们希望完全匹配的文档占的评分比较高,则需要使用best_fields,multi_match默认是best_fields

 {
"query": {
"multi_match": {
"query": "王阳明",
"fields": [
"title",
"yearAlias"
],
"minimum_should_match": "70%"
}
}
}

2) 我们希望越多字段匹配的文档评分越高,就要使用most_fields

{
"query": {
"multi_match": {
"query": "王阳明",
"type": "most_fields",
"fields": [
"title",
"keywords"
]
}
}
}

3) 我们会希望这个词条的分词词汇是分配到不同字段中的,那么就使用cross_fields

 {
"query": {
"multi_match": {
"query": "王阳明",
"fields": [
"title",
"keywords"
],
"type": "cross_fields"
}
},
"highlight": {
"fields": {
"title": {
"pre_tags": ["<a>" ],
"post_tags": [ "</a>"]
},
"keywords": {
"pre_tags": ["<b>" ],
"post_tags": ["</b>" ]
}
}
}
}

上面查询语句中,包含了高亮显示结果属性:highligt

4、term 精确值查找

 {
"query": {
"term": {
"title": "王阳明"
}
}
}

与match查询类似,但term是精确查找,代表完全匹配,即不进行分词器分析,文档中必须包含整个搜索的词汇,但是 term 和 terms 是 必须包含(must contain) 操作,而不是必须精确相等(must equal exactly),当查询 jack 时,[jack] 和[jack,jone]两条数据都会被找到

Elasticsearch 不同的搜索类型之间的区别的更多相关文章

  1. mysql中几个日期时间类型之间的区别和使用

    MySQL中有如下几个时间类型:date.time.datetime.timestamp.year MySQL数据类型           含义 date                     只存 ...

  2. pandas数据类型(二)与numpy的str和object类型之间的区别

    现象: Numpy区分了str和object类型,其中dtype(‘S’)和dtype(‘O’)分别对应于str和object. 然而,pandas缺乏这种区别 str和object类型都对应dtyp ...

  3. Elasticsearch搜索类型(query type)详解

    关于我,邯郸人. 对这类话题感兴趣?欢迎发送邮件至donlianli@126.com 请支持原创http://www.cnblogs.com/donlianli/p/3857500.html    e ...

  4. Elasticsearch之四种查询类型和搜索原理(博主推荐)

    Elasticsearch Client发送搜索请求,某个索引库,一般默认是5个分片(shard). 它返回的时候,由各个分片汇总结果回来. 官网API https://www.elastic.co/ ...

  5. int和Integer之间的区别和联系

          在工作中使用==埋下的坑这篇博文中,我们看到当使用基本类型的时候==是完全没有问题的,部分或者混合使用基本类型和装箱基本类型的时候,就可能出现问题了,那么我们可能会想基本类型和装箱基本类型 ...

  6. 答:SQLServer DBA 三十问之一: char、varchar、nvarchar之间的区别(包括用途和空间占用);xml类型查找某个节点的数据有哪些方法,哪个效率高;使用存储 过程和使用T-SQL查询数据有啥不一样;

    http://www.cnblogs.com/fygh/archive/2011/10/18/2216166.html 1. char.varchar.nvarchar之间的区别(包括用途和空间占用) ...

  7. 列举两种不同类型的Java标识注释,并解释它们之间的区别。

    列举两种不同类型的Java标识注释,并解释它们之间的区别.

  8. 企业大数据之Elasticsearch的搜索类型

    下面的 ES基于版本(V2.3.4) ES之默认 1.默认自动发先同一局域网的所有集群节点 2.默认一个索引库会有5个分片,(分片越多,效率越好) 由于这两个默认,所以统一索引库的分片对分布在不同机器 ...

  9. Elasticsearch - 搜索类型与搜索位置

    一.搜索类型: Elasticsearch同意用户选择其所希望的处理查询的方式. 由于存在一些不同的情形,对其使用不同的搜索类型才是合适的.为了控制查询的运行方式,我们能够在请求中使用search_t ...

随机推荐

  1. centos图形界面的开启和关闭

    一般来说centos主要用于服务器端,所以很少开启图形化界面,但是有时候为了工作方便也会偶尔开启图形界面,下面就让简单谈谈如何开启图形化界面, 当然简化安装是没有这个程序的需要自行安装,可以yum安装 ...

  2. 【Windows socket+IP+UDP+TCP】网络基础

    Windows Socket+网络      Winsock是 Windows下套接字标准.          Winsock 编程分为UDP[Windows socket + UDP],TCP[Wi ...

  3. Linux+Redis实战教程_day03_Redis-set【重点】_有序set(了解)

    2.redis-set[重点] Java HashSet  无序,不重复. Redis操作中,涉及到两个大数据集合的并集,交集,差集运算. 赋值: l sadd key values[value1.v ...

  4. 5 -- Hibernate的基本用法 --1 3 流行的ORM框架简介

    ⊙ JPA : JPA本身只是一种ORM规范,并不是ORM产品.它是Java EE规范制定者向开源世界学习的结果.JPA实体与Hibernate PO十分相似,甚至JPA实体完全可作为Hibernat ...

  5. Go面向对象(三)

    go语言中的大多数类型都是值予以,并且都可以包含对应的操作方法,在需要的时候你可以给任意类型增加新方法.二在实现某个接口时,无需从该接口集成,只需要实现该接口要求的所有方法即可.任何类型都可以被any ...

  6. CSS属性中display="none“与visibility="hidden"的不同

    display="none",元素会从页面移除,不在页面占用位置,当某个元素设置为display="none"时,这个元素后面的元素会移动上来 visibili ...

  7. 递归的几个demo

    /** * Created by root * Description : 递归函数 */ object RecursionTest { def main(args: Array[String]): ...

  8. Memcached 命令行操作

    telnet 用于连接 Memcached: [root@localhost ~]# telnet Trying 127.0.0.1... Connected to 127.0.0.1. Escape ...

  9. (数字IC)低功耗设计入门(一)——低功耗设计目的与功耗的类型

    低功耗设计这个专题整理了好久,有一个月了,有图有证据: 然而最近一直有些烦心事.郁闷事,拖延了一下,虽然现在还是有点烦,但是还是先发表了吧.下面我们就来聊聊低功耗设计吧,由于文章比较长,因此我就不一次 ...

  10. Kafka一些常见资源汇总

    终于下定决心写一点普及类的东西.很多同学对Kafka的使用很感兴趣.如果你想参与到Kafka的项目开发中,很多资源是你必须要提前准备好的.本文罗列了一些常用的Kafka资源,希望对这些develope ...