Elasticsearch属性单词常用解析说明
作者:铁柱同学 发布时间:2023-06-12 14:47:36
一、前言
说实话,刚测试ES的时候,我的内心是崩溃的,好多单词都不知道代表什么意思,只能一边测试,一边查询。看到就赶紧记下来,一天下来,也算是学的七七八八吧。这里分享给大家。
二、ES常见单词解释
1、url请求中的参数:
curl -XPOST 'localhost:9200/bank/type1/_search?pretty' -d '
{
"query": { "match_all": {} }
}'
(1)9200后面的bank是索引名字
(2)type1代表es的type,类似于传统数据库的table
(3)pretty:pretty是将返回的信息以可读的JSON形式返回
2、_source字段:
这个字段代表是否存储在原始文档。如果设置为true,那么查询之后,会在hits.hits里面有个_source数组,展示原始文档。
_source可以限制存储部分字段,或者不存储部分字段,形如:
"yourtype":{
"_source":{
"includes":["field1","field2"] //这两个字段会存储在原始文档
},
"properties": {
...
}
}
"yourtype":{
"_source":{
"excludes":["field1","field2"] //这两个字段不会存储在原始文档
},
"properties": {
...
}
}
3、_all的配置:
这个属性的配置方法和_source类似,它是把一个文档里面的所有信息都放到一起组合成一个大字段。我们可以设置这个字段包含所有的字段,也可以设置只包含几个字段,或者是只存储几个字段
(1)包含所有字段
"yourtype": {
"_all": {
"enabled": true //这样设置的话,就包含了所有的字段
},}
(2)包含或者不包含部分字段
"yourtype": {
"properties": {
"field1": {
"type": "string",
"include_in_all": false //这个字段不包含在_all
},
"field2": {
"type": "string",
"include_in_all": true //这个字段包含在_all
}
}
}
4、highlight 高亮显示:
这个字段类似于咱们百度的时候,符合预期文字的部分都会高亮显示出红色来
(1)可以在查询时指定高亮字段或者全部高亮
"query": {
"match": {
"_all": "中国人"
}
},
"highlight": {
"fields": {
//"_all": {} //这是对_all字段进行高亮查询
//"title": {} //这是对title字段进行高亮显示
}
}
5、设置字段的index属性。
这个属性是控制该字段是否生成倒排索引,取值主要有三个:
(1)analyzed:字段被索引,会做分词,可搜索。反过来,如果需要根据某个字段进搜索,index属性就应该设置为analyzed。
(2)not_analyzed:字段值不分词,会被原样写入索引。反过来,如果某些字段需要完全匹配,比如人名、地名,index属性设置为not_analyzed为佳。
(3)no:字段不写入索引,当然也就不能搜索。反过来,有些业务要求某些字段不能被搜索,那么index属性设置为no即可。
类似于:
(1)analyzed:字段被索引,会做分词,可搜索。反过来,如果需要根据某个字段进搜索,index属性就应该设置为analyzed。
(2)not_analyzed:字段值不分词,会被原样写入索引。反过来,如果某些字段需要完全匹配,比如人名、地名,index属性设置为not_analyzed为佳。
(3)no:字段不写入索引,当然也就不能搜索。反过来,有些业务要求某些字段不能被搜索,那么index属性设置为no即可。
6、store属性:
用于指定是否将原始字段写入索引,默认取值为no。
因为在Lucene中,高亮功能和store属性是否存储息息相关,因为需要根据偏移位置到原始文档中找到关键字才能加上高亮的片段。在Elasticsearch,因为_source中已经存储了一份原始文档,可以根据_source中的原始文档实现高亮,在索引中再存储原始文档就多余了,所以Elasticsearch默认是把store属性设置为no。
注意: 如果想要对某个字段实现高亮功能,_source和store至少保留一个。
参考:https://blog.csdn.net/mlljava1111/article/details/70598481
7、took :该请求花了多少毫秒 (took)
8、_shards:
描述了查询分片的信息,查询了多少个分片、成功的分片数量、失败的分片数量等猜测这个字段代表该次查询,获取数据经过的分片数量之和
9、hits:
搜索的结果,total是全部的满足的文档数目,hits是返回的实际数目(默认是10)
10、max_score和_score :
代表的是查询结果的评分值,分越高,代表权重越大,排名越靠前。具体的参考:
https://blog.csdn.net/paditang/article/details/79098830
有的时候我们可能对分数不感兴趣,就可以使用filter进行过滤,它不会去计算分值,因此效率也就更高一些
11、Routing:Elasticsearch的路由机制
我们可以通过制定路由,而避免ES自己进行大量的广播操作。直接按照我们制定的路由找到对应的分片查询,关于路由机制,我们不做赘述,只是了解下就行。
具体请参考:https://blog.csdn.net/cnweike/article/details/38531997
12、term和trems:
这两个是精准查找,一个是单数,一次查找单个值。一个是复数,一次查找多个值。
例如:"terms" : {
"price" : [20, 30]
}
13、先看个语句:
GET _search
{
"query": {
"filtered": {
"query": {
"match": {
"text": "quick brown fox"
}
},
"filter": {
"term": {
"status": "published"
}
}
}
}
}
(1) 这里的"filtered": 从ES5.0之后被移除了。
(2) filter代表过滤匹配,也是为了过滤status字段,让它不去计算的分数,不用计算权重等。
新的语句为:
GET _search
{
"query": {
"bool": {
"must": {
"match": {
"text": "quick brown fox"
}
},
"filter": {
"term": {
"status": "published"
}
}
}
}
}
(3) bool代表的是bool查询,参数主要有:
must
所有的语句都 必须(must) 匹配,与 AND 等价。
must_not
所有的语句都 不能(must not) 匹配,与 NOT 等价。
should
至少有一个语句要匹配,与 OR 等价
来源:https://blog.csdn.net/LJFPHP/article/details/89113320
猜你喜欢
- 我们现在回到函数上。记得我们用 SUM 这个指令来算出所有的 Sales (营业额)吧!如果我们的需求变成是要算出每一间店 (store_n
- 什么是MySql数据库?通常意义上,数据库也就是数据的集合,具体到计算机上数据库可以是存储器上一些文件的集合或者一些内存数据的集合。我们通常
- 今天萌发一个想法,用css来实现透视效果。起初,我想到的是我们常见的添加阴影效果的方法,用多个div通过偏移来实现,但这需要很多 div,不
- 当前记录集不支持更新。这可能是提供程序的限制,也可能是选定锁定类型的限制 问题的解决方法如下:第一:ACC
- PHPStudy hosts文件可能不存在或被阻止打开,同步hosts失败在使用PHPStudy建站包时,有时会遇到同步hosts失败的问题
- asp三天学好ADO对象之第一天 今天说一下Recordset 对象的属性1、CursorType 属性AdOpenForwardOnly:
- 由于ACCESS本身没有提供在窗体中添加一个命令按钮实现打开通用对话框的控件,所以大家必须通过编写相关的宏才能实现此功能,但是编写出的宏限制
- 有一个表,用户需要在后台操作它,希望能对它动态进行添加删除字段。这个功能也许没有问题,但是它原有插入与更新的两个存储过程,也需要一起修改。因
- 代码如下:<% FunctIon DownloadFIle(StrFIle) StrFIlename=StrFIle Response
- 假设有一个表,结构如下:mysql> CREATE TABLE `a` ( `id
- 使用了application及结合数据库来保存统计数据 <html><head><title>
- iUI、jQTouch、WPTouch、PhoneGap、XUI、iWebkit、Rhodes、gwt-mobile…当我们已经开始惊叹 w
- 分页程序sub show_page参数说明:total_records 总记录数everypage_records 每页显示条数
- 根据一些CSS写作经验,如何提高渲染效率及所占用消耗的资源,我们来浅谈一下CSS的渲染效率,书写高效的CSS。1、十六进制的颜色值对位数与大
- 第四篇《WEB标准能有多难?》专栏文章将结束关于文本部分的XHTML的讲解。那么这篇主讲的内容涉及链接、标题、插入、删除、上下标、分割线、换
- 两列布局的定宽自适应已经详解了,三列浮动中有两列定宽一列自适应的也详解了,那么该说说三列浮动中两列自适应一列定宽的布局了。中间定宽,左右两侧
- 管理SQL Server内在的帐户和密码时,我们很容易认为这一切都相当的安全。但实际上并非如此。在这里,我们列出了一些对于SQL Serve
- 一般的防止被框架方式或者被框架后自动转向,方法如下: if (top.location != self.loc
- 为了应用方便,您可能需要给数据库的每条记录都添加日期/时间戳,以便确定各个记录添加到数据库的时间。在Access数据库应用中,使用Now()
- 就服务器端处理而言,ASP是产生动态Web网页的一种相对较新的技术。动态页意味着什么呢?先暂时不考虑客户端相关功能上的进展,也不讨论客户端脚