博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【ES】学习2-搜索
阅读量:5155 次
发布时间:2019-06-13

本文共 1465 字,大约阅读时间需要 4 分钟。

1.空搜索

返回所有索引下的所有文档

GET /_search

设置超时。timeout 不是停止执行查询,它仅仅是告知正在协调的节点返回到目前为止收集的结果并且关闭连接。在后台,其他的分片可能仍在执行查询即使是结果已经被发送了。

GET /_search?timeout=10ms

 

2.多索引,多类型

/_search   在所有的索引中搜索所有的类型

/gb/_search   在 gb 索引中搜索所有的类型

/gb,us/_search   在 gb 和 us 索引中搜索所有的文档

/g*,u*/_search   在任何以 g 或者 u 开头的索引中搜索所有的类型

/gb/user/_search   在 gb 索引中搜索 user 类型

/gb,us/user,tweet/_search   在 gb 和 us 索引中搜索 user 和 tweet 类型

/_all/user,tweet/_search   在所有的索引中搜索 user 和 tweet 类型

 

3.分页

在不指定数量时只会返回前10个文档。可以用size, from参数指定显示的文档数量

size显示应该返回的结果数量,默认是 10  from显示应该跳过的初始结果数量,默认是 0

GET /_search?size=5GET /_search?size=5&from=5GET /_search?size=5&from=10

 

深度分页问题

理解为什么深度分页是有问题的,我们可以假设在一个有 5 个主分片的索引中搜索。 当我们请求结果的第一页(结果从 1 到 10 ),每一个分片产生前 10 的结果,并且返回给 协调节点 ,协调节点对 50 个结果排序得到全部结果的前 10 个。

现在假设我们请求第 1000 页--结果从 10001 到 10010 。所有都以相同的方式工作除了每个分片不得不产生前10010个结果以外。 然后协调节点对全部 50050 个结果排序最后丢弃掉这些结果中的 50040 个结果。

可以看到,在分布式系统中,对结果排序的成本随分页的深度成指数上升。这就是 web 搜索引擎对任何查询都不要返回超过 1000 个结果的原因。

 

4.轻量搜索

查询在 tweet 类型中 tweet字段包含 elasticsearch 单词的所有文档

GET /_all/tweet/_search?q=tweet:elasticsearch

查询在 name 字段中包含 john 并且在 tweet 字段中包含 mary 的文档。

+name:john +tweet:maryGET /_search?q=%2Bname%3Ajohn+%2Btweet%3Amary

+ 前缀表示必须与查询条件匹配。类似地, - 前缀表示一定不与查询条件匹配。没有+ 或者 - 的所有其他条件都是可选的

 

下面的查询针对tweents类型,并使用以下的条件:

  • name 字段中包含 mary 或者 john
  • date 值大于 2014-09-10
  • _all_ 字段包含 aggregations 或者 geo
+name:(mary john) +date:>2014-09-10 +(aggregations geo)?q=%2Bname%3A(mary+john)+%2Bdate%3A%3E2014-09-10+%2B(aggregations+geo)

 

转载于:https://www.cnblogs.com/dplearning/p/6940458.html

你可能感兴趣的文章
(前端)html与css css 19、tab栏
查看>>
一起来学习.net core程序使用中介者模式:MediatR插件
查看>>
debian9 设置
查看>>
5句话搞定ES5作用域
查看>>
Build tool
查看>>
php 小坑记录
查看>>
2018.7.28 二叉树的遍历规则(前序遍历、后序遍历、中序遍历)
查看>>
通过 poi 导入 Excel代码
查看>>
《CSS基础教程》 读书笔记三
查看>>
洛谷P4482 [BJWC2018]Border 的四种求法 字符串,SAM,线段树合并,线段树,树链剖分,DSU on Tree...
查看>>
PHP安全新闻早8点_1127
查看>>
57.Insert Interval
查看>>
PHP 五大运行模式
查看>>
CSS选项卡
查看>>
HDOJ1203 I NEED A OFFER!
查看>>
ZH奶酪:自然语言处理工具LTP语言云调用方法
查看>>
.NET中将图片文件流转成Base64字符串的实现
查看>>
js如何操作或是更改sass里的变量
查看>>
BZOJ1419: Red is good
查看>>
腾讯云-搭建 JAVA 开发环境
查看>>