elasticsearch从入门到出门-03-多种搜索
1、query string search
2、query DSL
3、query filter
4、full-text search
5、phrase search
6、highlight search
GET /ecommerce/product/_search
可以查询出当前索引下这个类型的所有数据,

took 本次搜索耗费的时间:毫秒
timed_out:是否超时,这里是没有
—shards 分片
所以对于搜索请求,会打到所有的primary shard(或者是它的某个replica shard也可以)
hits

total 查询到的是2个document
max_score :搜索时候的相关性匹配分数
qi
其实这种方式主要是采用的是get的url拼接类似!
2、query DSL
DSL 意思是特殊领域的查询语言:Domain Specified Language,
请求体可以是JSON格式的:
查询包含yagao,且按照价格排序
GET /ecommerce/product/_search
{
"query": {
"match": {
"name": "yagao"
}
},"sort": [
{
"price": {
"order": "asc"
}
}
]
}
分页查询商品每一页显示1条数据,显示第2页:
GET /ecommerce/product/_search
{
"query": {
"match_all": {}
},
"from": 1
, "size": 1
}
只查询出来商品的名称和价格就可以:
GET /ecommerce/product/_search
{
"query": { "match_all": {} },
"_source": ["name", "price"]
}
非常适合生产环境。
3、query filter 相当于查询时候进行过滤了
查询包含牙膏的,并且价格大于21的
GET /ecommerce/product/_search
{
"query" : {
"bool" : {
"must" : {
"match" : {
"name" : "yagao"
}
},
"filter" : {
"range" : {
"price" : { "gt" : 21 }
}
}
}
}
}
4、full-text search 全文检索
GET /ecommerce/product/_search
{
"query": {
"match": {
"producer": "zhonghua"
}
}
}
5、phrase search 短词搜索
注意:这个搜索时精确的搜索,不会对查询的词进行拆分,类似于不会模糊查询然会返回
但是和全文搜索相反,全文搜索或在把查询的参数进行拆分,再去倒排索引上进行查询!
GET /ecommerce/product/_search
{
"query": {
"match_phrase": {
"producer": "produce"
}
}
}
6、highlight search 高亮搜索

总结下这6中搜索:
第一种url拼接形式的搜索,实战中用的少
第二种搜索:DSL 搜索 相对第一种搜索已经很大的提高,采用JSON格式参数进行搜索
第三种:过滤搜索
第四种:全文搜索,还是很有用的
第五种:短词精确搜索
第6个是高亮,在做检索时候还是很有用的
坚持才是进步的开始!
elasticsearch从入门到出门-03-多种搜索的更多相关文章
- elasticsearch从入门到出门-02-简单的CRUD
操作背景: 电商网站上面的一个商品的增删改查: es 能接受的都是JSON格式的数据 Es 提供了一套简单的集群信息健康监控的api GET /_cat/health?v epoch t ...
- elasticsearch从入门到出门-08-Elasticsearch容错机制:master选举,replica容错,数据恢复
假如: 9 shard,3 node Elasticsearch容错机制:master选举,replica容错,数据恢复 最佳分配情况: 这样分配之后,不管其中哪个node 宕机这个es 依然可以提供 ...
- elasticsearch从入门到出门-01windows上安装使用
elasticsearch 1.安装JDK,至少1.8.0_73以上版本,java -version2.下载和解压缩Elasticsearch安装包,目录结构3.启动Elasticsearch:bin ...
- elasticsearch从入门到出门-06-剖析Elasticsearch的基础分布式架构
这个图来自中华石杉:
- elasticsearch从入门到出门-05-集群之踩坑
自己搭的集群, 设备: win10 + ubuntu 16 的虚拟机一个: 下载的版本:elasticsearch-5.2.0 win10 解压下就好了,不说了. ubuntu 上,我想说多了都是泪! ...
- elasticsearch从入门到出门-04-入门的几个需求练手
第一个分析需求:计算每个tag下的商品数量 GET /ecommerce/product/_search{ "aggs": { "group_by_tags&qu ...
- sharding-jdbc从入门到出门(03)
经过端午节这2天对 sharding-jdbc一直怀揣成梦想的去学习,还是有一些没有解决的问题: 上一张图:
- Elasticsearch从入门到放弃:分词器初印象
Elasticsearch 系列回来了,先给因为这个系列关注我的同学说声抱歉,拖了这么久才回来,这个系列虽然叫「Elasticsearch 从入门到放弃」,但只有三篇就放弃还是有点过分的,所以还是回来 ...
- Elasticsearch从入门到精通-Elasticsearch是什么
作者其他ELK快速入门系列文章 logstash快速入门实战指南 Kibana从入门到精通 一.前言 驱动未来商业发展的最重要“能源”不是石油,而是数据.我们还来不及了解它,这个世界已经被它淹没.多年 ...
随机推荐
- Scala和Java二种方式实战Spark Streaming开发
一.Java方式开发 1.开发前准备:假定您以搭建好了Spark集群. 2.开发环境采用eclipse maven工程,需要添加Spark Streaming依赖. 3.Spark streaming ...
- Spring管理的bean初始化方法的三种方式,以及@PostConstruct不起作用的原因
1:Spring 容器中的 Bean 是有生命周期的,spring 允许 Bean 在初始化完成后以及销毁前执行特定的操作.下面是常用的三种指定特定操作的方法: 通过实现InitializingBea ...
- C#与数据结构--图的遍历
http://www.cnblogs.com/abatei/archive/2008/06/06/1215114.html 8.2 图的存储结构 图的存储结构除了要存储图中各个顶点的本身的信息外,同时 ...
- 又见The request sent by the client was syntactically incorrect ()
前几天遇到过这个问题(Ref:http://www.cnblogs.com/xiandedanteng/p/4168609.html),问题在页面的组件name和和注解的@param名匹配不对,这个好 ...
- redis学习笔记——内存映射数据结构
内存映射数据结构 解决问题:当一个对象包含的元素数量并不多,或者元素本身的体积并不大时,使用代价高昂的内部数据结构并不是最好的办法. 内存映射数据结构是一系列经过特殊编码的字节序列,创建它们所消耗的内 ...
- JAVA Eclipse中如何简易的实现消息机制
大部分情况下,我们需要实现的消息机制无非是某个类得到了数据,需要传递到某个主界面上去显示,可以把这个消息在类中做成全局变量,主界面的类用一个线程定时扫描,如果这个数据不是空,则说明被类刷新了,那么更新 ...
- linux程序设计——取消一个线程(第十二章)
12.7 取消一个线程 有时,想让一个线程能够要求还有一个线程终止,就像给它发送一个信号一样. 线程有方法能够做到这一点,与与信号处理一样.线程能够被要求终止时改变其行为. pthread_ca ...
- Ansible 安装jdk
1. 在hosts文件添一个group,里面是你需要安装jdk的ip,如: [newhosts]192.168.2.155 ansible_ssh_user=hadoop ansible_ssh_pa ...
- tony_update yum
更改方法是这样的 在 /etc/yum.repos.d 下 1 wget http://mirrors.163.com/.help/CentOS6-Base-163.repo 2 #mv Cen ...
- Atitit swt 4.3 4.4 4.5 新特性java attilax总结
Atitit swt 4.3 4.4 4.5 新特性java attilax总结 1. 4.5 Release - June 3, 20151 1.1. Older Releases1 2. SWT ...