Elasticsearch使用指南--查询
来源:互联网 发布:go web编程 pdf 编辑:程序博客网 时间:2024/06/05 15:00
elasticsearch是什么
elasticsearch,简称es,是一个开源的搜索引擎,es的作用非常强大,普通的从数据库读取数据的方式已经不能满足我们形形色色的搜索要求,es就可以。就比如我们想要在茫茫人海中找到那些身高一米八、年龄在30岁到35岁之间、喜欢狗不喜欢猫的程序员,es不仅能满足所有的需求,而且能快速的帮你找到。
在使用es之前,建议先看看极客学院的es权威指南
es使用环境
在使用es之前,要在服务器端搭建一个es的集群,因为我是做前端的,所以具体怎么搭建集群我不是很懂,然后把我们需要的数据库的数据导到es环境里就可以用了。我们前端大都是构建es的DSL查询语句,去查询我们需要的东西。
查询
查询全部
{ "query":{ "match_all":{} }}
查询名字中有小明的
{ "query":{ "match":{ "name":"小明" } }}
查询名字中有完整“小明”的,match是模糊匹配,他会对关键词进行分词查询
{ "query": { "match_phrase": { "name": "小明" } }}
查询名字是“小明”,年龄“10”岁的 ··· ···
{ "query": { "bool": { "must": [ { "match_phrase": { "name": "小明" } }, { "match_phrase": { "age": "10" } } ] } } }
从第一条数据开始查询5条数据
{ "from":0, "size":5, "query": { "match_phrase": { "name": "小明" } }}
使查询结果的关键词即“小明”高亮的技巧
{ "from":0, "size":5, "query": { "match_phrase": { "name": "小明" } }, "highlight": { "pre_tags": [ "<font color=red><b>" ], "post_tags": [ "</b></font>" ], "fields": [ { "name": {} } ] }}
对小明的查询结果排序,默认是针对匹配分数”_score”排序
{ "from":0, "size":5, "query": { "match_phrase": { "name": "小明" } }, "sort": { "_score": { "order": "desc" }, "time": { "order": "desc" } }}
对小明的查询结果聚类
{ "from":0, "size":5, "query": { "match_phrase": { "name": "小明" } }, "aggs": { "type": { "terms": { "field": "_type" } } }}
查询出生日期在2000年到2005年之间的
{ "from": 0, "size": "10", "query": { "bool": { "must": { "match_all": {} }, "filter": { "range": { "time_pub": { "gte": "2000-01-01", "lte": "2005-12-31" } } } } }}
将上面的所有功能结合起来就可以完成查询多个段的关键词,高亮显示,排序,聚类,范围的复合查询
查询结果的遍历
假设我们在这里构建了一条复杂的查询语句
{ "query": { "bool": { "must": [ { "match_phrase": { "name": "小明" } } ] } }, "highlight": { "pre_tags": [ "<font color=red><b>" ], "post_tags": [ "</b></font>" ], "fields": [ { "name": {} } ] }, "sort": { "_score": { "order": "desc" }, "time_pub": { "order": "desc" } }, "size": "5", "from": 0, "aggs": { "type": { "terms": { "field": "_type" } } }}
我们查出了所有name字段中的小明的结果,并做了高亮显示,按照类型聚类查询结果
结果的结构是这样的,”hits”是查询的结果,”total”是结果的总条目,”aggregations”是聚类的结果
“hits”结果部分,”highlight”就是高亮显示了的字段,”sort”是排序的分值
“aggregations”聚类部分,”buckets”是聚类结果,关联数组的形式
只要清楚了它的结构,遍历是很简单的。
原文链接
0 0
- Elasticsearch使用指南--查询
- 3 ElasticSearch 索引查询使用指南
- ElasticSearch使用指南
- ElasticSearch 索引查询使用指南——详细版
- ElasticSearch 索引查询使用指南——详细版
- ElasticSearch 索引查询使用指南——详细版
- ElasticSearch@Windows使用指南
- elasticsearch.net search使用指南
- elasticsearch-查询
- Elasticsearch查询
- Elasticsearch查询
- ElasticSearch查询
- Elasticsearch 查询
- Elasticsearch的Javascript Client使用指南
- Elasticsearch查询配置(Elasticsearch+springboot)
- whois 批量查询使用指南
- Elasticsearch NEST使用指南:映射和分析
- Elasticsearch 5.X下JAVA API使用指南
- matlab实现CNN代码test_example_CNN_MNIST.m注释版
- AJAX简易实战笔记
- UML时序图总结
- RxJava学习之创建型操作符
- python 3D绘图(matplotlib)中视角的改变
- Elasticsearch使用指南--查询
- c#learn1装箱&拆箱
- Android Studio的Gradle插件文档
- 深入浅出DNS系列(三)- DNS相关协议
- WebGIS开源解决方案之矢量数据导入
- Android随笔之标题栏的去除以及自定义
- UE4使用git插件做版本管理
- opencv函数使用——imread
- Mybatis项目运行套路和常见错误总结