elasticsearch 查询 query
对于 类型是 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的更多相关文章
- Elasticsearch(5) --- Query查询和Filter查询
Elasticsearch(5) --- Query查询和Filter查询 这篇博客主要分为 :Query查询和Filter查询.有关复合查询.聚合查询也会单独写篇博客. 一.概念 1.概念 一个查询 ...
- elasticsearch Terms Query 实现类似于sql in查询
本文demo基于elasticsearch 5.1.1, 项目中使用的还是较早的版本 例如 import com.alibaba.fastjson.JSON; import org.elastics ...
- elasticsearch 查询(match和term)
elasticsearch 查询(match和term) es中的查询请求有两种方式,一种是简易版的查询,另外一种是使用JSON完整的请求体,叫做结构化查询(DSL). 由于DSL查询更为直观也更为简 ...
- Func<T,T>应用之Elasticsearch查询语句构造器的开发
前言 之前项目中做Elasticsearch相关开发的时候,虽然借助了第三方的组件PlainElastic.Net,但是由于当时不熟悉用法,而选择了自己拼接查询语句.例如: string queryG ...
- Elasticsearch查询
Elasticsearch支持两种类型的查询:基本查询和复合查询. 基本查询,如词条查询用于查询实际数据. 复合查询,如布尔查询,可以合并多个查询, 然而,这不是全部.除了这两种类型的查询,你还可以用 ...
- ElasticSearch 查询语法
ElasticSearch是基于lucene的开源搜索引擎,它的查询语法关键字跟lucene一样,如下: 分页:from/size 字段:fields 排序:sort 查询:query 过滤:filt ...
- ElasticSearch查询 第五篇:布尔查询
布尔查询是最常用的组合查询,不仅将多个查询条件组合在一起,并且将查询的结果和结果的评分组合在一起.当查询条件是多个表达式的组合时,布尔查询非常有用,实际上,布尔查询把多个子查询组合(combine)成 ...
- 利用kibana插件对Elasticsearch查询
利用kibana插件对Elasticsearch查询 Elasticsearch是功能非常强大的搜索引擎,使用它的目的就是为了快速的查询到需要的数据. 查询分类: 基本查询:使用Elasticsear ...
- ElasticSearch查询 第四篇:匹配查询(Match)
<ElasticSearch查询>目录导航: ElasticSearch查询 第一篇:搜索API ElasticSearch查询 第二篇:文档更新 ElasticSearch查询 第三篇: ...
随机推荐
- iOS知识点全梳理-b
感谢分享 原文链接:http://www.jianshu.com/p/5d2163640e26 序言 目前形势,参加到iOS队伍的人是越来越多,甚至已经到供过于求了.今年,找过工作人可能会更深刻地体会 ...
- 爬虫-UserAgent
废话不多说,直接写代码 [root@localhost ~]# pip3 install fake-useragent Collecting fake-useragent Downloading ht ...
- 用python编写的定向arp欺骗工具
刚学习了scapy模块的一些用法,非常强大,为了练手,利用此模块编写了一个arp欺骗工具,其核心是构造arp欺骗包.加了一个-a参数用于进行全网欺骗,先暂不实现.代码如下: #--*--coding= ...
- (转载)js(jquery)的on绑定点击事件执行两次的解决办法
js(jquery)的on绑定点击事件执行两次的解决办法—不是事件绑定而是事件冒泡 遇到的问题:jquery中用.on()给页面中新加的元素添加点击事件时,点击事件源,绑定的事件执行两次,这里的ale ...
- 线程安全 对StringBuilder抛出ArrayIndexOutOfBoundsException的探究
对StringBuilder抛出ArrayIndexOutOfBoundsException的探究 - CSDN博客 https://blog.csdn.net/liu_005/article/det ...
- ermissions on /usr/local/mongodb/conf/keyFile are too open
ermissions on /usr/local/mongodb/conf/keyFile are too open > rs.initiate(cfg); { "ok" : ...
- 关于div li 等标签之间自带间距
可以用float来清除标签之间的间距. ps :ul使用font-size:0 唯一的缺点就是要再次设置LI的font-size
- 蓝牙协议(bluetooth spec)
1.概述: 蓝牙协议规范遵循开放系统互连参考模型(OSI/RM),从低到高地定义了蓝牙协议堆栈的各个层次. SIG(Session Initiation Protocol)所定义的蓝牙技术规范的目 ...
- 51Nod 1282 时钟 —— 最小表示法 + 字符串哈希
题目链接:https://vjudge.net/problem/51Nod-1282 1282 时钟 题目来源: Codility 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难 ...
- http的安全方法和幂等性
最近在研究http,看到http的安全方法和幂等性部分,不太明白,尤其是"post方法是非幂等的"不理解,进过查资料,找到以下两篇有价值的文章,特转过来! 理解HTTP幂等性 转自 ...