ElasticSearch(五)-搜索
2016-05-19 16:33
246 查看
ES可以结构化查询,也可以进行全文检索
需要理解三个概念:
Mapping、Analysis、Query DSL
Mapping:类似于关系型数据库中的数据类型,但Mapping更加复杂,功能更加精细;
Analysis:索引和搜索时利用分词对数据进行分析;
Query DSL:ES功能强大的查询语言,但不容易掌握。
1.空搜索
响应:
Hits:total表示匹配的文档总数;
Took:告诉我们请求搜索的毫秒数;
Shards:参与查询的分片数
Timeout :设置超时
假如设置GET /_search?timeout=10ms
则ES顶多在10ms返回结果数据,哪怕数据不完整。
使用超时可能是业务需要,但执行的查询在后台依然进行,而不能中断查询,只是返回那一刻的查询结果。
2.多索引和多类别
在以
/_all/user,tweet/_search
在所有索引的user和tweet中搜索
search types user and tweet in allindices
搜索一个索引有5个主分片和5个索引各有一个分片事实上是一样的。
3.分页
size: 果数,默认10
from: 跳过开始的结果数,默认0
如果每页显示5个,页码从1到3:则
GET /_search?size=5
GET /_search?size=5&from=5
GET /_search?size=5&from=10
深度分页随着分页的深入,排序将成倍增长,所以一般的搜索引擎都不能返回多于1000个结果;
4.查询字符串
两种方式查询:
(1)简易版的query string
不建议用忽略
(2)使用完整的请求体DSL
后续介绍
5. _all 字段
索引一个文档,ES会把所有字段值放在一起,定义为_all
本文出处:/article/7596883.html
需要理解三个概念:
Mapping、Analysis、Query DSL
Mapping:类似于关系型数据库中的数据类型,但Mapping更加复杂,功能更加精细;
Analysis:索引和搜索时利用分词对数据进行分析;
Query DSL:ES功能强大的查询语言,但不容易掌握。
1.空搜索
GET /_search
响应:
{ "hits" : { "total" : 14, "hits" : [ { "_index": "us", "_type": "tweet", "_id": "7", "_score": 1, "_source": { "date": "2014-09-17", "name": "John Smith", "tweet": "The Query DSL is really powerful andflexible", "user_id": 2 } }, ... 9 RESULTS REMOVED ... ], "max_score" : 1 }, "took" : 4, "_shards" : { "failed" : 0, "successful" : 10, "total" : 10 }, "timed_out" : false }
Hits:total表示匹配的文档总数;
Took:告诉我们请求搜索的毫秒数;
Shards:参与查询的分片数
Timeout :设置超时
假如设置GET /_search?timeout=10ms
则ES顶多在10ms返回结果数据,哪怕数据不完整。
使用超时可能是业务需要,但执行的查询在后台依然进行,而不能中断查询,只是返回那一刻的查询结果。
2.多索引和多类别
/g*,u*/_search
在以
g或
u开头的索引的所有类型中搜索
/_all/user,tweet/_search
在所有索引的user和tweet中搜索
search types user and tweet in allindices
搜索一个索引有5个主分片和5个索引各有一个分片事实上是一样的。
3.分页
size: 果数,默认10
from: 跳过开始的结果数,默认0
如果每页显示5个,页码从1到3:则
GET /_search?size=5
GET /_search?size=5&from=5
GET /_search?size=5&from=10
深度分页随着分页的深入,排序将成倍增长,所以一般的搜索引擎都不能返回多于1000个结果;
4.查询字符串
两种方式查询:
(1)简易版的query string
不建议用忽略
(2)使用完整的请求体DSL
后续介绍
5. _all 字段
索引一个文档,ES会把所有字段值放在一起,定义为_all
本文出处:/article/7596883.html
相关文章推荐
- C# 使用FileSystemWatcher来监视文件系统的变化
- python:使用pyquery分析html
- Proguard代码混淆
- android webview 全解
- Android生成的img文件及对应的MTK烧写的img文件
- 【转载】九宫格抽奖转盘实例
- tupian5
- 阿里云新增SSD云盘及卸载
- 开源分布式搜索平台ELK(Elasticsearch+Logstash+Kibana)+Redis+Syslog-ng实现日志实时搜索
- Could not resolve type alias 'DepartmentResultMap'.
- 4004 The Frog's Games --二分+贪心
- xcode7.0https安全协议
- Android Context 上下文 你必须知道的一切
- 《梦断代码》阅读笔记01
- [转载]linux查询历史记录命令history的用法介绍
- 《七周七语言》之ruby练习2
- sublime 3text MYSQL调试搭建
- Java编程思想第四版第八章学习——多态
- AJAX请求在微信环境报错:NetworkError: Failed to execute 'send' on 'XMLHttpRequest': Failed to load
- 【多线程-Abort()方法强制退出线程】