【ES】学习2-搜索

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=5
GET /_search?size=5&from=5
GET /_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:mary
GET /_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)
时间: 2024-08-30 12:08:25

【ES】学习2-搜索的相关文章

深度学习在搜索和推荐领域的应用

/* 版权声明:可以任意转载,转载时请标明文章原始出处和作者信息 .*/ author: 张俊林 深度学习在搜索和推荐领域的应用 大纲: ?深度学习在搜索领域的应用 –通用框架与抽象模型 –几种常见的DL搜索模型 –搜索周边功能 ?深度学习在推荐领域的应用 扫一扫关注微信号:"布洛卡区" ,深度学习在自然语言处理等智能应用的技术研讨与科普公众号.

Es学习第六课, ES基本搜索_search

前面几课ES的基本概念.安装和分词都讲过了,下面我们就来实战一下ES的核心功能-搜索,这节课我们主要讲的是基本搜索 _search(注意:ES的关键字都要加前缀_,所以我们在定义索引.类型名称时不要带_). 我们先通过kibana插入几条三个文档 PUT /customer/doc/1?pretty { "name": "John Doe" } POST /customer/doc/ { "title": "My second blog

ES学习2

1:es中的分页 一般搜索引擎中的分页都不会提供很大的页面查询,因为查询的页码越大,查询效率越低. 例子: 我们就先预想一下我们在搜索一个拥有5个主分片的索引.当我们请求第一页搜索的时 候,每个分片产生自己前十名,然后将它们返回给请求节点,然后这个节点会将50条 结果重新排序以产生最终的前十名. 现在想想一下我们想获得第1,000页,也就是第10,001到第10,010条结果,与之前同理, 每一个分片都会先产生自己的前10,010名,然后请求节点统一处理这50,050条结果 ,然后再丢弃掉其中的

solr学习之一 搜索基本知识

学习了一段时间的solr了,用自己的方式总结下目前学到的内容,这是个系列文章,这里面的有些说法可能不准确,也可能有问题 欢迎大家指正. 一.搜索引擎目的 搜索引擎在我们的生活中,已经无处不在,除了我们常用的baidu.Google等,还有一些电商的搜索 比如亚马逊搜书等.除了网页搜索外,企业内部可能涉及到知识库搜索,一般称为企业搜索.现在搜索要主要的目的是,在海量信息中,从非结构化数据中快速找到符合我们含义的信息.注意这里的几个关键词语. "海量信息"  :搜索引擎一般处理的数据量很大

OpenGL ES学习笔记(二)——平滑着色、自适应宽高及三维图像生成

首先申明下,本文为笔者学习<OpenGL ES应用开发实践指南(Android卷)>的笔记,涉及的代码均出自原书,如有需要,请到原书指定源码地址下载. <Android学习笔记--OpenGL ES的基本用法.绘制流程与着色器编译>中实现了OpenGL ES的Android版HelloWorld,并且阐明了OpenGL ES的绘制流程,以及编译着色器的流程及注意事项.本文将从现实世界中图形显示的角度,说明OpenGL ES如何使得图像在移动设备上显示的更加真实.首先,物体有各种颜色

OpenGL ES学习资料总结

从今年春节后开始学习OpenGL ES,发现网上资料很有限,而且良莠不齐,所以整理了一下我学习时用到的资料和一些心得. 1. OpenGL ES1.x参考资料 把NEHE的教程移植到了Android上,当然用的是ES1 http://insanitydesign.com/wp/projects/nehe-android-ports/ 2. OpenGL ES2.x参考资料 有很多Android上ES2应用的文章 http://tangzm.com/blog/?p=20 特别好的书,网上有英文版p

深度学习在搜索业务中的探索与实践

本文根据美团高级技术专家翟艺涛在2018 QCon全球软件开发大会上的演讲内容整理而成,内容有修改. 引言 2018年12月31日,美团酒店单日入住间夜突破200万,再次创下行业的新纪录,而酒店搜索在其中起到了非常重要的作用.本文会首先介绍一下酒店搜索的业务特点,作为O2O搜索的一种,酒店搜索和传统的搜索排序相比存在很大的不同.第二部分介绍深度学习在酒店搜索NLP中的应用.第三部分会介绍深度排序模型在酒店搜索的演进路线,因为酒店业务的特点和历史原因,美团酒店搜索的模型演进路线可能跟大部分公司都不

ES学习之分片路由

本文主要内容: 1.路由一个文档到一个分片 2.新建.索引和删除请求 3.取回单个文档 4.局部单个文档 5.多文档模式 6.理解一下ES深度分页(from-size)的劣势 路由一个文档到一个分片 当索引一个文档的时候,文档会被存储到一个主分片中. Elasticsearch 如何知道一个文档应该存放到哪个分片中呢?当我们创建文档时,它如何决定这个文档应当被存储在分片 1 还是分片 2 中呢? 首先这肯定不会是随机的,否则将来要获取文档的时候我们就不知道从何处寻找了.实际上,这个过程是根据下面

Elasticsearch之es学习工作中遇到的坑(陆续更新)

1:es集群脑裂问题(不要用外网ip,节点角色不要混用) 原因1:阿里云服务器,外网有时候不稳定. 解决方案:单独采购服务器,内网安装 原因2:master和node节点没有分开 解决方案: 分角色:master节点(三台),data节点(随着数据增加而增加),client(随着查询压力而增加)节点 Master节点:node.master: true   node.data: false Data节点:node.master: false   node.data: true Client 节点

js案例学习:搜索框效果

如图: <html><head> <title></title> <!--<link href="css.css" type="text/css" rel="stylesheet"/>--> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>