对于 类型是 text的字段,并且分析器指明是ik_max_word的会建立倒排索引

查询的分类:

match查询:  会自动转换大小写,会分词,

term查询: 不会转换和分词,只能值匹配

terms查询: 可以给字段值传入数组, 这里有没有分词呢??????????应该和term一样的只会值匹配吧,要不为啥叫terms,待验证

控制查询的数量,  from,和size属性指明,可以用来分页

match_all: 搜索索引下的所有type

match_phrase: 满足分词后的所有词, slop参数, 分词后的最小距离

multi_match: 指明多个字段进行查询,比如两个字段中都进行查询是否有一个值, 并且这里面可以给不同的字段赋予不同的权重 通过^number

查询后返回的字段: stored_fields,它的值是个数组,这里值只会是store为true的字段 ,这样返回的是在 _fields里面,而不是其他的都是在_source里面

查询结果排序:  sort字段和query同级: 值是个数组,数组的元素是个字典,指明排序字段的升序降序,

查询范围: range字段,在query里面, 指明那个字段的范围  gte , great than equal , lte,    boost (权重), 对于时间类,可以使用"now"

模糊查询: wildcard   查询字符段里面有通配符

最重要的match和range

bool查询

包括: must should must_not filter

filter: 过滤数据并且不参与打分

must : 必须全部满足

should: 满足一个就行

must_not: 一个都不能满足

bool是在query下的,然后在四个下面按照query的格式写查询就好了

filter里面最好用term查询,同样多个值查询用terms

对于text进行分词会进行转换,大写变成小写,这个时候如果用terms查询的值是大写,那样也是不匹配的,所以term查询是不是最好用不进行分词的字段

查看分析器的结果: GET _analyze

ik_max_word 分的比较细, ik_smart 比较智能一点,可以这么说

数组和字典

组合查询: 在bool里面的must_not , should,must进行组合

嵌套查询: 直接bool下面的里面再嵌套bool就可以了

过滤空和非空:  bool filter 下面的 exists,, 不存在 must_not 然后exists  

elasticsearch 查询 query的更多相关文章

  1. Elasticsearch(5) --- Query查询和Filter查询

    Elasticsearch(5) --- Query查询和Filter查询 这篇博客主要分为 :Query查询和Filter查询.有关复合查询.聚合查询也会单独写篇博客. 一.概念 1.概念 一个查询 ...

  2. elasticsearch Terms Query 实现类似于sql in查询

    本文demo基于elasticsearch 5.1.1,  项目中使用的还是较早的版本 例如 import com.alibaba.fastjson.JSON; import org.elastics ...

  3. elasticsearch 查询(match和term)

    elasticsearch 查询(match和term) es中的查询请求有两种方式,一种是简易版的查询,另外一种是使用JSON完整的请求体,叫做结构化查询(DSL). 由于DSL查询更为直观也更为简 ...

  4. Func<T,T>应用之Elasticsearch查询语句构造器的开发

    前言 之前项目中做Elasticsearch相关开发的时候,虽然借助了第三方的组件PlainElastic.Net,但是由于当时不熟悉用法,而选择了自己拼接查询语句.例如: string queryG ...

  5. Elasticsearch查询

    Elasticsearch支持两种类型的查询:基本查询和复合查询. 基本查询,如词条查询用于查询实际数据. 复合查询,如布尔查询,可以合并多个查询, 然而,这不是全部.除了这两种类型的查询,你还可以用 ...

  6. ElasticSearch 查询语法

    ElasticSearch是基于lucene的开源搜索引擎,它的查询语法关键字跟lucene一样,如下: 分页:from/size 字段:fields 排序:sort 查询:query 过滤:filt ...

  7. ElasticSearch查询 第五篇:布尔查询

    布尔查询是最常用的组合查询,不仅将多个查询条件组合在一起,并且将查询的结果和结果的评分组合在一起.当查询条件是多个表达式的组合时,布尔查询非常有用,实际上,布尔查询把多个子查询组合(combine)成 ...

  8. 利用kibana插件对Elasticsearch查询

    利用kibana插件对Elasticsearch查询 Elasticsearch是功能非常强大的搜索引擎,使用它的目的就是为了快速的查询到需要的数据. 查询分类: 基本查询:使用Elasticsear ...

  9. ElasticSearch查询 第四篇:匹配查询(Match)

    <ElasticSearch查询>目录导航: ElasticSearch查询 第一篇:搜索API ElasticSearch查询 第二篇:文档更新 ElasticSearch查询 第三篇: ...

随机推荐

  1. 面向对象 委托变量和this的使用

    委托方法: this的使用:

  2. AMD的ARM之路前景几何?

    http://server.zdnet.com.cn/all-2129330.html#2129333 AMD将于2014年推出基于ARM架构的Opteron(皓龙)处理器,应该是最近一段时间在IT产 ...

  3. LeetCode_3Sum Closest

    一.题目 3Sum Closest Total Accepted: 32191 Total Submissions: 119262My Submissions Given an array S of  ...

  4. Codeforces 3A-Shortest path of the king(BFS打印路径)

    A. Shortest path of the king time limit per test 1 second memory limit per test 64 megabytes input s ...

  5. adb4robotium跨进程框架抛出InputStream cannot be null的异常的解决方案

    转自:http://blog.csdn.net/qingchunjun/article/details/43448371 之前我写的关于利用adb框架来进行robotium跨进程操作的文章中,有些朋友 ...

  6. Android图表AChartEngine

    很多时候项目中我们需要对一些统计数据进行绘制表格,更多直观查看报表分析结果.基本有以下几种方法: 1:可以进行android api进行draw这样的话,效率比较低 2:使用开源绘表引擎,这样效率比较 ...

  7. JAVA学习第六十五课 — 正則表達式

    正則表達式:主要应用于操作字符串.通过一些特定的符号来体现 举例: QQ号的校验 6~9位.0不得开头.必须是数字 String类中有matches方法 matches(String regex) 告 ...

  8. ES6常用语法简介import export

    ES6常用语法简介import export let与var用法区别 //var var a = []; for (var i = 0; i < 10; i++) { a[i] = functi ...

  9. Android 源码架构

    我们都知道Android系统是一个开源工程,在网上可以下载到源代码. 一般在网上搜索一下,就会找到各种下载源代码的方法,比如使用Git和Repo,android源代码下载的网址是http://andr ...

  10. html5--6-65 布局4-弹性布局

    html5--6-65 布局4-弹性布局 实例 学习要点 掌握传统布局与CSS3新增弹性布局方式的实现和应用 弹性布局(弹性伸缩布局) 事实上它是一种新类型的盒子模型,也有书上称作弹性伸缩盒布局. 比 ...