elasticsearch搜索类型简单介绍
简单搜索
GET请求很easy——你能轻松获取你想要的文档。让我们来进一步尝试一些东西。比方简单的搜索!
我们尝试一个最简单的搜索所有员工的请求:
GET /megacorp/employee/_search
接下来。让我们搜索姓氏中包括“jake”的员工。
要做到这一点,我们将在命令行中使用轻量级的搜索方法。
这样的方法常被称作查询字符串(query string)搜索。由于我们像传递URL參数一样去传递查询语句:
GET /megacorp/employee/_search?
q=last_name:jake
我们在请求中依然使用_searchkeyword,然后将查询语句传递给參数q=。这样就能够得到全部姓氏为jake的结果。
使用DSL语句查询
查询字符串搜索便于通过命令行完毕特定(ad hoc)的搜索,可是它也有局限性(參阅简单搜索章节)。Elasticsearch提供丰富且灵活的查询语言叫做DSL查询(Query DSL),它同意你构建更加复杂、强大的查询。
DSL(Domain Specific Language特定领域语言)以JSON请求体的形式出现。我们能够这样表示之前关于“jake”的查询:
GET /megacorp/employee/_search
{
"query" : {
"match" : {
"last_name" : "jake"
}
}
}
这会返回与之前查询同样的结果。
你能够看到有些东西改变了,我们不再使用查询字符串(query string)做为參数。而是使用请求体取代。这个请求体使用JSON表示。当中使用了match语句(查询类型之中的一个。详细我们以后会学到)。
更复杂的搜索
我们让搜索略微再变的复杂一些。我们依然想要找到姓氏为“jake”的员工。可是我们仅仅想得到年龄大于30岁的员工。
我们的语句将加入过滤器(filter),它使得我们高效率的运行一个结构化搜索:
GET /megacorp/employee/_search
{
"query" : {
"filtered" : {
"filter" : {
"range" : {
"age" : { "gt" : 30 } <1>
}
},
"query" : {
"match" : {
"last_name" : "jake" <2>
}
}
}
}
}
- <1> 这部分查询属于区间过滤器(range filter),它用于查找全部年龄大于30岁的数据——
gt为"greater than"的缩写。 - <2> 这部分查询与之前的
match语句(query)一致。
短语搜索
眼下我们能够在字段中搜索单独的一个词,这挺好的,可是有时候你想要确切的匹配若干个单词或者短语(phrases)。比如我们想要查询同一时候包括"rock"和"climbing"(而且是相邻的)的员工记录。
要做到这个,我们仅仅要将match查询变更为match_phrase查询就可以:
GET /megacorp/employee/_search
{
"query" : {
"match_phrase" : {
"about" : "rock climbing"
}
}
}
高亮我们的搜索
非常多应用喜欢从每一个搜索结果中高亮(highlight)匹配到的keyword,这样用户能够知道为什么这些文档和查询相匹配。在Elasticsearch中高亮片段是非常easy的。
让我们在之前的语句上添加highlight參数。
当我们执行这个语句时,会命中与之前同样的结果,可是在返回结果中会有一个新的部分叫做highlight,这里包括了来自about字段中的文本。而且用<em></em>来标识匹配到的单词。
ps: web怎样做高亮显示,能够參考:http://www.w3school.com.cn/tags/tag_phrase_elements.asp
elasticsearch搜索类型简单介绍的更多相关文章
- Elasticsearch - 搜索类型与搜索位置
一.搜索类型: Elasticsearch同意用户选择其所希望的处理查询的方式. 由于存在一些不同的情形,对其使用不同的搜索类型才是合适的.为了控制查询的运行方式,我们能够在请求中使用search_t ...
- Elasticsearch搜索类型(query type)详解
关于我,邯郸人. 对这类话题感兴趣?欢迎发送邮件至donlianli@126.com 请支持原创http://www.cnblogs.com/donlianli/p/3857500.html e ...
- ElasticSearch文档-简单介绍
ElasticSearch是一个基于Lucene构建的开源,分布式,RESTful搜索引擎.设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便.支持通过HTTP使用JSON进行数据索引 ...
- 在linux上安装elasticsearch简称ES 简单介绍安装步骤
1.简介 Elasticsearch 是一个分布式可扩展的实时搜索和分析引擎,一个建立在全文搜索引擎 Apache Lucene(TM) 基础上的搜索引擎.当然 Elasticsearch 并不仅仅是 ...
- Python动态类型简单介绍
动态类型以及它提供的多态性,无疑是Python语言简洁性和灵活性的基础. 一.变量 <1>变量创建 一个变量a.当代码第一次给它赋值时就创建了它,之后的赋值将会改变已创建的变量名的值. ...
- python 基础-----数字,字符串,列表,字典类型简单介绍
一.第一个python小程序 1.下载安装python2.7和python3.6的版本及pycharm,我们可以再解释器中输入这样一行代码: 则相应的就打出了一句话.这里的print是打印的意思.你输 ...
- ElasticSearch搜索介绍四
ElasticSearch搜索 最基础的搜索: curl -XGET http://localhost:9200/_search 返回的结果为: { "took": 2, &quo ...
- C++map类型 之 简单介绍
一:map的前世今生 (1)从关联容器与顺序容器说起.关联容器通过键(key)存储和读取元素.而顺序容器则通过元素在容器中的位置顺序存储和訪问元素(vector,queue,stack,list等). ...
- Lucene.net站内搜索—4、搜索引擎第一版技术储备(简单介绍Log4Net、生产者消费者模式)
目录 Lucene.net站内搜索—1.SEO优化 Lucene.net站内搜索—2.Lucene.Net简介和分词Lucene.net站内搜索—3.最简单搜索引擎代码Lucene.net站内搜索—4 ...
随机推荐
- Manacher笔记
(其实还是回文自动机好用,毛子真是牛逼) Manacher #include<iostream> #include<cstring> #include<cstdio> ...
- MAC中Parallels Desktop windows忘记密码的解决办法
由于工作或是生活,在国内的环境下我们总有些时候要用到Windows才能完成某些任务,对于不经常使用Windows的用户,相信在虚拟机上安装一个Windows是不错的选择.小编就使用了Paralles ...
- 【转】Hook钩子C#实例
[转]Hook钩子C#实例 转过来的文章,出处已经不知道了,但只这篇步骤比较清晰,就贴出来了. 一.写在最前 本文的内容只想以最通俗的语言说明钩子的使用方法,具体到钩子的详细介绍可以参照下面的网址: ...
- Dynamics CRM2013 Form利用window.location.reload()进行全局刷新带来的问题及解决的方法
CRM2013以后.表单的保存后变成了局部刷新而非全局刷新,但非常多情况下我们须要刷新整个页面.通过刷新页面来使脚本运行或者业务规则运行来实现某些业务效果,一般我们会使用window.location ...
- ORA-06553:PLS-306:wrong number or types of arguments in call to ''
1.错误描写叙述 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/ ...
- [HNOI2008] GT考试(DP+矩阵快速幂+KMP)
题目链接:https://www.luogu.org/problemnew/show/P3193#sub 题目描述 阿申准备报名参加 GT 考试,准考证号为 N 位数 X1,X2…Xn(0 <= ...
- 排序算法(Apex 语言)
/* Code function : 冒泡排序算法 冒泡排序的优点:每进行一趟排序,就会少比较一次,因为每进行一趟排序都会找出一个较大值 时间复杂度:O(n*n) 空间复杂度:1 */ List< ...
- [USACO07DEC]道路建设Building Roads
题目:洛谷P2872.POJ3625. 题目大意:给你n个点的坐标,有些点已经有边连通,现在要你连上剩下的所有点,求这些边的最小长度是多少(不包括原来的边). 解题思路:最小生成树,把所有边处理出来, ...
- LVS+keepalived均衡nginx配置
如果单台LVS发生突发情况,例如宕机.发生不可恢复现象,会导致用户无法访问后端所有的应用程序.避免这种问题可以使用HA故障切换,也就是有一台备用的LVS,主LVS 宕机,LVS VIP自动切换到从,可 ...
- ConEmu windows上的终端工具
ConEmu Windows terminal 官网: http://conemu.github.io/