一、前言

说实话,刚测试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即可。

类似于:

"properties": {"title": {"type": "string","index": "not_analyzed",  //这里根据业务进行设置"store": "true"},}

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 等价

以上就是我在测试学习的时候,记录的一些属性的解释。这些单词弄懂之后,再回头看ES,突然感觉能看懂了,哈哈。不过还有很多陌生的概念,需要不断总结吧。加油。

end

elasticsearch常见属性单词解释相关推荐

  1. 机器学习常见英语单词解释

    hypothesis:假设 Cost Function:代价函数 parameters:参数 Gradient Descent:梯度下降算法 local minimum:局部最小值. global m ...

  2. 【每日一算法】最常见的单词

    微信改版,加星标不迷路! 每日一算法-最常见的单词 给定一个段落 (paragraph) 和一个禁用单词列表 (banned).返回出现次数最多,同时不在禁用列表中的单词.题目保证至少有一个词不在禁用 ...

  3. Java常见异常及解释

    常见 Java 异常解释:(译者注:非技术角度分析.阅读有风险,理解需谨慎:)) java.lang ArithmeticException 你正在试图使用电脑解决一个自己解决不了的数学问题,请重新阅 ...

  4. 【无人机航测实习简明教程】1 无人机航测常见名词术语解释

    1 无人机航测常见名词术语解释 1 数据获取部分 航片: 地面分辨率: 航向重叠率: 旁向重叠率: 五向飞行: 井字形飞行: 变高飞行: 正射: 像片的方位元素: 像片的内方位元素: 像片的外方位元素 ...

  5. Linux DTS中和中断相关属性的解释和用法

    Linux DTS中和中断相关属性的解释和用法 前言 中断控制器的硬件结构(基于Exynos4412 ARMv7) GIC Interrupt Combiner DTS对中断的描述 DTS中断实例解析 ...

  6. python所有单词和语法_单词积累:常见,阅读单词和语法重点(全部都要)

    题目: 单词积累:常见,阅读单词和语法重点(全部都要) 本人是英语很差的,所以,请解释的详细并在后面用括号简单说.例如什么是时间状语 ···· ···() 有很多呢,多列点,要有例句是越易懂愈好.单词 ...

  7. 程序员常见700单词

    程序员常见700单词 快捷键  Ctrl+F  进行搜索查找 1. password  /ˈpæswɜ:rd/  n. 密码 2. grep   /'grep/  n.  检索目标行命令 3. tre ...

  8. Elasticsearch常见错误及解决方法

    Elasticsearch常见错误及解决方法: 1.启动时候报错:Caused by: java.net.BindException: Cannot assign requested address ...

  9. 常见 Java 异常解释

    常见 Java 异常解释:(译者注:非技术角度分析.阅读有风险,理解需谨慎:)) **java.lang ArithmeticException 你正在试图使用电脑解决一个自己解决不了的数学问题,请重 ...

最新文章

  1. LabVIEW目标测量方法(基础篇—12)
  2. python带我起飞 豆瓣评分_你听过后觉得爽到飞起的电音是哪一首?
  3. gdiplus拼接两张图片_深色模式下的图片变暗问题,解决了!
  4. Selenium UI自动化测试(四)Python+Unittest+HTMLTestRunner测试报告—百度hao123实例
  5. mysql的with rollup
  6. 树莓派用java怎样_树莓派(一):安装与使用
  7. arm中断保护和恢复_ARM中断处理过程
  8. Java字符串排序后输出
  9. Keil 安装 配置
  10. sqlserver2012下载地址
  11. ARKit入门到精通-0.0-史小川-专题视频课程
  12. ThinkPHP6 自定义分页样式 快速配置
  13. WAV和PCM的关系和区别
  14. 如何更新neovim以及安装指定版本
  15. Java-web css笔记
  16. 华为鸿蒙os设置界面,华为鸿蒙OS系统界面疑似曝光 运行性能提升超60%
  17. 360前端星计划学习-html
  18. android 错误中英互译,Android 中英文切换及遇到的问题
  19. 数字图像处理 - Ch2 图像取样与量化
  20. mysql中单个表脏读_如何在Outlook中单击邮件后立即将其标记为已读

热门文章

  1. pytorch tensorboard
  2. python 多进程管道 消息式通信
  3. collapse 聚合
  4. transport=websocket' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED
  5. No module named 'fcntl'
  6. ios可变数组的操作
  7. opencv 图像阴影检测
  8. OpenCV仿射变换 SURF特征点描述合辑
  9. ospf 中传输网络和传输区域的概念?
  10. 一、为什么要使用NoSQL数据库