精简版搜索(search lite)

ES有两种格式的search api:

“lite”——query string版本,这个版本期望所有的参数在请求中指定并传递

full request body版本期望得到一个JSON请求体,并且使用一个名为DSL的丰富的搜索语言

query string搜索对在使用命令行的即席查询(ad
hoc
 queries)是很有用的。例如要查询type是tweet并且字段“tweet”包含"elasticsearch"单词的document:

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

下一个查询是从name字段中查出“john”和在tweet字段中查出“mary”:

+name:john +tweet:mary

查询字符串是需要对查询语句进行%编码的,经过编码的查询要比真是的查询语句看起来更隐秘:

GET /_search?q=%2Bname%3Ajohn+%2Btweet%3Amary

“+”前缀表示必须匹配要查询的条件。类似的“-”前缀必须不能匹配要查询的条件。没有“+”或“-”的都是可选项,越是匹配,搜索得到的document越是相关。

_all 字段

下面这个简单的查询返回了所有包含“mary”的document:

GET /_search?q=mary

以前的例子中,我们在tweet或这name字段中查询”mary“,然而这次,结果是从三个不同的field中得到的:

  • a user whose name is "Mary"

  • six tweets by "Mary"

  • one tweet directed at "@mary"

ES是怎么从三个不同的字段中找到结果的呢?

当我们index一个document的时候,ES把每个field的值合并成一个大的字符串,这个大的字符串被放入到指定的_all字段中。例如,当我们index下面这个document:

{
    "tweet":    "However did I manage before Elasticsearch?",
    "date":     "2014-09-14",
    "name":     "Mary Jones",
    "user_id":  1
}

这就好象我们另外添加了一个_all的field,其值是:

"However did I manage before Elasticsearch? 2014-09-14 Mary Jones 1"

除非你在搜索的时候指定filed的名称,否则默认搜索的就是这个_all的field。

当你入门一个新的引用的时候,这个_all就是一个很有用的特点,如果你指定一个field而不是_all你就能对检索的结果获得更多的控制权。当你不再需要_all的时候,你可以让其失效,就像Metadata: _all field在介绍的一样。

更复杂的查询

下面的搜索查询是针对tweets的:

  • where the name field contains "mary" or "john"

  • and where the date is greater than 2014-09-10

  • and which contain either of the words "aggregations" or "geo" in the _all field
+name:(mary john)+date:>2014-09-10+(aggregations geo)

编码后的查询语句如下:

?q=%2Bname%3A(mary+john)+%2Bdate%3A%3E2014-09-10+%2B(aggregations+geo)

从上面的案例中可以看出,简单的query
string功能强大的令人惊讶,他的语法在有详细的介绍,使我们能够简洁地表达比较复杂的查询。这使的ES非常适合在命令行或者开发过程中进行查询。

然而,你也看到了,这种简介也使他变得神秘和难以调试。并且,这个结构也是很脆弱的,一个简单的语法错误,比如-,:,/或者“
都将导致错误而无法返回结果。

最后,query string
允许任何用户对你的index的任何field进行潜在的慢重查询,这个会暴露你的私人信息,甚至将导致你的集群瘫痪。给予这个原因,不推荐直接query
string暴露给你的用户。

相反,在生产中,我们通常依赖于全功能的request body
这个搜索API,他能做上面所有的功能,但不仅仅这些。在我们学习这些之前,我们要先看一下我们的数据在ES中是怎么存储的。

原文:http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/search-lite.html

精简版搜索(search lite),布布扣,bubuko.com

时间: 2024-08-25 16:01:06

精简版搜索(search lite)的相关文章

Windows7 SP1旗舰版精简版最终版本

2016年6月9号,老毛子@lopatkin大神针对Win7 SP1旗舰版精简版进行了最终更新,此次主要是之前小问题的修复和调整.该版为Windows 7 SP1 简体中文旗舰版最新版,包含2016年微软累积更新,经过国内众多系统爱好者检验,精简后体积比较小,适合低配电脑,非常稳定流畅!Win7爱好者们不妨下载收藏! 俄罗斯系统精简狂人@lopatkin 大侠一直专注于Windows操作系统的精简封装,每次微软有新的系统版本发布,他都会第一时间制作跟进发布.老毛子精简改进的系统以纯净流畅为主,无

利用HTML5技术在Web上实现对图形图像的处理——WebPhotoshop精简版

WebPhotoshop精简版是利用HTML5技术在Web上实现对图形图像的处理,构建易维护.易共享.易于拓展.实时性的Web图形图像处理平台. 精简版功能包括:图形绘制.图像处理.图像操作.完整版包括多人协作操作图像.实时交流.图片搜索,同时实现实时的多人协作处理图形图像技术.(完整版后续上传)一.功能说明:1.图形绘制 实现铅笔.画笔(书法画笔.喷枪.蜡笔.记号笔.水彩画笔)的绘制效果.实现直线.曲线.椭圆(圆).矩形(圆角矩形).三角形(直角三角形.等边三角形.任意三角形).多边形的绘制.

一般的linux系统默认安装的vim是精简版

一般的linux系统默认安装的vim是精简版(vim-tiny),所以不能配置语法检查等属性或获取在线帮助.需要安装vim-x:x.x.x,vim-common,vim-runtime. :syntax on 启动语法检查 或 :set syntax=sh :set hlsearch 搜索高亮 :set tabstop=4 tab为多少个空格 :set autoindent 自动缩进,即与上一行对其 可以将这些配置放在~/.vimrc中,不带冒号,一行一个命令.

雨林木风 Windows Vista ULTIMATE With SP1 精简版 Y2.1

软件大小:2.66G   软件语言:简体中文   软件类别:国外软件/操作系统   运行环境:Win2003, WinXP, Win2000, NT, WinME,winvista,win7   授权方式:免费软件 软件评级: 雨林木风 Windows Vista ULTIMATE With SP1 精简版,基于 Windows Vista Ultimate SP1 X86 MSDN 官方简体中文版精简优化而成,无人值守安装,免激活,免序列号,安装方便快捷! 雨林木风 Vista 2.1 精简版

小韦XPSP3 V10.0_Ghost精简版

小韦XPSP3 V10.0_Ghost精简版 小韦XPSP3 V10.0_Ghost精简版该版本基于小韦XPSP3 V10.0,用EasySysprep_4.1进行重新封装,最大程度保持原版极度精简的理念.C盘为NTFS格式,安装后C盘只占用260M(关闭虚拟内存)!改进如下:1.修复了快速启动栏,增加了显示桌面按钮.2.附件中增加了计算器.3.增加了语言栏显示,便于手工安装输入法.4.增加vbscript支持.5.恢复xcopy.find命令到system32目录.6.修复右击磁盘格式化的命令

js数字格式化-四舍五入精简版

搜索网上的,数字格式化过余复杂,自己想了个简单方法,欢迎吐槽. 简化说明: '123333' => 12.3万 parseInt('123333') 字符串转整型 parseInt('123333')/1000 先除以1000,预留小数位数 Math.round(parseInt('123333')/1000),四舍五入到整数 (Math.round(parseInt('123333')/1000)/10) 除以10保留1位小数 (Math.round(parseInt('123333')/10

Dreamweaver cc 2018精简版

Adobe Dreamweaver cc 2018绿色精简版点击下载Dreamweaver cc 2018精简版打开方法 1.绿色无需安装,下载数据包后解压鼠标双击"Dreamweaver.exe"运行即可 2.第一次打开可能需要一些时间,等待程序初始化完成即可进去软件界面免费使用了 新功能 1.Dreamweaver中的HiDPI分辨率支持 (Windows)现在,Dreamweaver CC为 Windows 提供 HiDPI 显示器支持.通过引入高分辨率,在使用现代显示器时,Dr

让 Chrome 57 支持迅雷精简版

感觉下面步骤麻烦的,可以翻到文章最后,提供了全部文件打包,Chrome 扩展最好还是去 Chrome 商店安装 详细步骤 1. 安装迅雷精简版 迅雷精简版 1.5.3.288 最终更新官网下载 http://down.sandai.net/mini/ThunderMini_dl1.5.3.288.exe 2. 下载迅雷 Chrome 扩展额外支持包 http://plugin.xl7.xunlei.com/7.9/func/xl_ext_chrome_setup.exe 3. 使用 7zip 解

oracle10g精简版安装步骤

 Feng218 如果出现如下错误: 最好把360安全卫士全关了,再安装下,就没事了 然后安装完了进入时输入用户名:sys或者system 密码就是自己设好的密码进来之后如下所示 oracle10g精简版安装步骤,布布扣,bubuko.com