Elasticsearch 顶尖高手(5)--快速入门案例实战:多种搜索方式(二)

1.query string search

GET /ecommerce/product/_search

took:耗费了几毫秒

timeout:是否超时

_shards:数据拆成了5个分片,所以对于搜索请求,会打到所有的primary shard(或者是它的某个relica shard也可以)

hist.total:查询结果的数量,4个total

max_score:score的含义,就是document对于一个search的相关度的匹配分数,越相关,就越匹配,分数也越高

hits.hits:包含了匹配搜索的document的详细数据

搜索商品名称中包含yagao的商品,而且按照售价降序排序:GET /ecommerce/product/_search?q=name:yagao&sort=price:desc

适用于临时的在命令行使用一些工具,比如curl,快读的发出请求,来检索想要的信息。但是如果查询请求很复杂,是很难去构建的,在生产环境中,几乎很少使用query string search

2.query DSL

DSL:  Domain Specified  Language  特定领域的语言

http request body :请求体,可以用json的格式来构建查询语法,比较方便,可以构建各种复杂的语法,比query string search 更加强大

查询所有商品

GET /ecommerce/product/_search

{

“query”:{“match_all”:{}}

}

查询名称包含yagao 的商品,同时按照价格降序排序

GET /ecommerce/product/_search

{

“query”:{

“match”:{

“name”:”yagao”

}

},

“sort”:[

{“price”:”desc”}

]

}

分页查询商品,总共3条商品,假设每页就显示1条商品, 现在显示第二页,所以就查出第二个商品

GET /ecommerce/product/_search

{

“query”:{“match_all”:{}},

“from”:1,

“size”:2

}

指定要查询出来商品的名称和价格

GET /ecommerce/product/_search

{

“query”:{“match_all”:{}},

“_source”:[“name”,”price”]

}

3.query filter(对数据进行过滤)

搜索商品名称包含yagao,而且售价大于25元的商品

GET /ecommerce/product/_search

{

“query”:{

“bool”:{

“must”:[

{“match”:{“name”:”yagao”}}

]

},

“filter”:{

“range”:{

“price”:{

“gt”:25

}

}

}

}

}

4.full-test search(全文检索)

GET /ecommerce/product/_search

{

“query”:{

“match”:{

“product”:”yagao producer”

}

}

}

producer  会被拆解开,建立倒排索引

special         5

yagao          5

producer      1,2,3,5

gaolujie       1

zhonghua    3

jiajieshi       2

最终会找到匹配的最多的那一条数据,也就是所谓的匹配度最高

5.phrase search(全文搜索)

跟全文搜索相对应,相反,全文检索会将输入的搜索串拆解开来,去倒排索引里面去一一匹配,只要能匹配上任意一个拆解后的单词,就可以作为结果返回

phrase search,要求输入的搜索串,必须在指定的字段文本中, 完全包含一摸一样的,才可以算匹配,才能作为结果返回。

GET /ecommerce/product/_search

{

“query”:{

“match_phrase”:{“product”:”yagao producter”}

}

}

只返回了一条数据,因为要求全匹配

6.heighlight search(高亮搜索)

GET /ecommerce/product/_search

{

“query”:{

“match”:{

“product”:”producter”

}

},

“highlight”:{

“fields”:{

“product”:{}

}

}

}

原文地址:https://www.cnblogs.com/Mr-WangYue/p/11518715.html

时间: 2024-10-10 15:24:08

Elasticsearch 顶尖高手(5)--快速入门案例实战:多种搜索方式(二)的相关文章

Elasticsearch 顶尖高手(6)--快速入门案例实战:group by + avg + sort等聚合分析(三)

1.计算每个tag下的商品数量 GET /ecommerce/product/_search { "aggs":{ "group_by_tags":{ "terms":{"field":"tags"} } } } 将文本field的fielddate属性设置为true PUT /ecommerce/_mapping/product { "properties":{ "tags&

Elasticsearch顶尖高手系列-快速入门篇

01.课程介绍02.用大白话告诉你什么是Elasticsearch03.Elasticsearch的功能.适用场景以及特点介绍04.手工画图剖析Elasticsearch核心概念:NRT.索引.分片.副本等05.在windows上安装和启动Elasticseach06.快速入门案例实战之电商网站商品管理:集群健康检查,文档CRUD07.快速入门案例实战之电商网站商品管理:多种搜索方式08.快速入门案例实战之电商网站商品管理:嵌套聚合,下钻分析,聚合分析09.手工画图剖析Elasticsearch

Elasticsearch快速入门案例

写在前面的话:读书破万卷,编码如有神-------------------------------------------------------------------- 参考内容: <Elasticsearch顶尖高手系列-快速入门篇>,中华石杉 -------------------------------------------------------------------- 主要内容包括: es的document数据格式和数据库的关系型数据格式的区别 简单的集群管理 电商网站商品管

Elasticsearch顶尖高手系列-高手进阶篇视频教程

14套java精品高级架构课,缓存架构,深入Jvm虚拟机,全文检索Elasticsearch,Dubbo分布式Restful 服务,并发原理编程,SpringBoot,SpringCloud,RocketMQ中间件,Mysql分布式集群,服务架构,运 维架构视频教程 14套精品课程介绍: 1.14套精 品是最新整理的课程,都是当下最火的技术,最火的课程,也是全网课程的精品: 2.14套资 源包含:全套完整高清视频.完整源码.配套文档: 3.知识也 是需要投资的,有投入才会有产出(保证投入产出比是

CMake快速入门教程-实战

http://www.ibm.com/developerworks/cn/linux/l-cn-cmake/ http://blog.csdn.net/dbzhang800/article/details/6314073 http://www.cnblogs.com/coderfenghc/archive/2013/01/20/2846621.html http://blog.sina.com.cn/s/blog_4aa4593d0100q3bt.html http://hahack.com/c

TensorFlow快速入门与实战

课程目录:01.课程内容综述02.第一章内容概述03.TensorFlow产生的历史必然性04.TensorFlow与JeffDean的那些事05.TensorFlow的应用场景06.TensorFlow的落地应用07.TensorFlow的发展现状08.第二章内容概述09.搭建你的TensorFlow开发环境10.HelloTensorFlow11.在交互环境中使用TensorFlow12.在容器中使用TensorFlow13.第三章内容概述14.TensorFlow模块与架构介绍15.Ten

Elasticsearch顶尖高手系列-高手进阶篇(最新第二版)

第1节结构化搜索_IT技术论坛案例背景介绍第2节结构化搜索_在案例中实战使用termfilter来搜索数据第3节结构化搜索_filter执行原理深度剖析(bitset机制与caching机制)第4节结构化搜索_在案例中实战基于bool组合多个filter条件来搜索数据第5节结构化搜索_在案例中实战使用terms搜索多个值以及多值搜索结果优化第6节结构化搜索_在案例中实战基于rangefilter来进行范围过滤第7节深度探秘搜索技术_在案例中体验如何手动控制全文检索结果的精准度第8节深度探秘搜索技

转:CMake快速入门教程-实战

CMake快速入门教程:实战 收藏人:londonKu     2012-05-07 | 阅:10128  转:34    |   来源   |  分享      0. 前言一个多月前,由于工程项目的需要,匆匆的学习了一下cmake的使用方法,现在有时间拿出来整理一下.本文假设你已经学会了cmake的使用方法,如果你还不会使用cmake,请参考相关资料之后再继续向下看.本文中介绍的是生成可执行程序的方法和步骤,生成动态库和静态库的方法与此有所不同,随后会介绍动态库和静态库项目中cmake的编写方

ELK系列(1) - Elasticsearch + Logstash + Kibana + Log4j2快速入门与搭建用例

前言 最近公司分了个ELK相关的任务给我,在一边学习一边工作之余,总结下这些天来的学习历程和踩坑记录. 首先介绍下使用ELK的项目背景:在项目的数据库里有个表用来存储消息队列的消费日志,这些日志用于开发者日后的维护.每当客户端生产一条消息并发送到消息队列后,就会插入一条对应的记录到数据库里.当这条消息被消费之后,又会更新数据库里对应的记录的几个column的值,比如status.updated_on这些常用的column. 由于客户每天生产消费的消息很多,导致数据库里的这个表里的数据很多,长年累