请选择 进入手机版 | 继续访问电脑版

[PHP编程] Elasticsearch属性单词常用剖析 阐明

[复制链接]
查看156 | 回复37 | 2021-9-13 06:10:51 | 显示全部楼层 |阅读模式

一、媒介

      说实话 ,刚测试ES的时间 ,我的心田 是崩溃的,好多单词都不知道代表什么意思,只能一边测试,一边查询。看到就赶牢记 下来,一天下来,也算是学的七七八八吧。这里分享给大家。

二、ES常见单词表明

1、url哀求 中的参数:

  1. curl -XPOST 'localhost:9200/bank/type1/_search?pretty' -d '
  2. {
  3. "query": { "match_all": {} }
  4. }'
  5. (1)9200后面的bank是索引名字
  6. (2)type1代表es的type,类似于传统数据库的table
  7. (3)pretty:pretty是将返回的信息以可读的JSON形式返回
复制代码

2、_source字段:

      这个字段代表是否存储在原始文档。假如 设置为true,那么查询之后,会在hits.hits内里 有个_source数组,展示原始文档。
_source可以限定 存储部分字段,或者不存储部分字段,形如:

  1. "yourtype":{
  2. "_source":{
  3. "includes":["field1","field2"] //这两个字段会存储在原始文档
  4. },
  5. "properties": {
  6. ...
  7. }
  8. }
  9. "yourtype":{
  10. "_source":{
  11. "excludes":["field1","field2"] //这两个字段不会存储在原始文档
  12. },
  13. "properties": {
  14. ...
  15. }
  16. }
复制代码

3、_all的设置 :

      这个属性的设置 方法和_source类似 ,它是把一个文档内里 的全部 信息都放到一起组合成一个大字段。我们可以设置这个字段包含全部 的字段,也可以设置只包含几个字段,或者是只存储几个字段

(1)包含全部 字段

  1. "yourtype": {
  2. "_all": {
  3. "enabled": true //这样设置的话,就包含了所有的字段
  4. },}
复制代码

(2)包含或者不包含部分字段

  1. "yourtype": {
  2. "properties": {
  3. "field1": {
  4. "type": "string",
  5. "include_in_all": false //这个字段不包含在_all
  6. },
  7. "field2": {
  8. "type": "string",
  9. "include_in_all": true //这个字段包含在_all
  10. }
  11. }
  12. }
复制代码

4、highlight 高亮表现 :

这个字段类似 于咱们百度的时间 ,符合预期笔墨 的部分都会高亮表现 出红色来

(1)可以在查询时指定高亮字段或者全部高亮

  1. "query": {
  2. "match": {
  3. "_all": "中国人"
  4. }
  5. },
  6. "highlight": {
  7. "fields": {
  8. //"_all": {} //这是对_all字段进行高亮查询
  9. //"title": {} //这是对title字段进行高亮显示
  10. }
  11. }
复制代码

5、设置字段的index属性。

这个属性是控制该字段是否天生 倒排索引,取值紧张 有三个:

  1. (1)analyzed:字段被索引,会做分词,可搜索。反过来,如果需要根据某个字段进搜索,index属性就应该设置为analyzed。
  2. (2)not_analyzed:字段值不分词,会被原样写入索引。反过来,如果某些字段需要完全匹配,比如人名、地名,index属性设置为not_analyzed为佳。
  3. (3)no:字段不写入索引,当然也就不能搜索。反过来,有些业务要求某些字段不能被搜索,那么index属性设置为no即可。
复制代码

类似 于:

  1. (1)analyzed:字段被索引,会做分词,可搜索。反过来,如果需要根据某个字段进搜索,index属性就应该设置为analyzed。
  2. (2)not_analyzed:字段值不分词,会被原样写入索引。反过来,如果某些字段需要完全匹配,比如人名、地名,index属性设置为not_analyzed为佳。
  3. (3)no:字段不写入索引,当然也就不能搜索。反过来,有些业务要求某些字段不能被搜索,那么index属性设置为no即可。
复制代码

6、store属性:

用于指定是否将原始字段写入索引,默认取值为no。

      由于 在Lucene中,高亮功能和store属性是否存储息息干系 ,由于 必要 根据偏移位置到原始文档中找到关键字才能加上高亮的片断 。在Elasticsearch,由于 _source中已经存储了一份原始文档,可以根据_source中的原始文档实现高亮,在索引中再存储原始文档就多余了,以是 Elasticsearch默认是把store属性设置为no。
留意 : 假如 想要对某个字段实现高亮功能,_source和store至少保留一个。

  1. 参考:https://blog.csdn.net/mlljava1111/article/details/70598481
复制代码

7、took :该哀求 花了多少毫秒 (took)

8、_shards:

      形貌 了查询分片的信息,查询了多少个分片、成功的分片数量 、失败的分片数量 等猜测这个字段代表该次查询,获取数据颠末 的分片数量 之和

9、hits:

搜刮 的效果 ,total是全部的满足 的文档数量 ,hits是返回的实际 数量 (默认是10)

10、max_score和_score :

代表的是查询效果 的评分值,分越高,代表权重越大,排名越靠前。具体 的参考:

  1. https://blog.csdn.net/paditang/article/details/79098830
复制代码

有的时间 我们大概 对分数不感爱好 ,就可以使用 filter举行 过滤,它不会去计算分值,因此服从 也就更高一些

11、Routing:Elasticsearch的路由机制

      我们可以通过订定 路由,而避免ES本身 举行 大量的广播操作。直接按照我们订定 的路由找到对应的分片查询,关于路由机制,我们不做赘述,只是相识 下就行。

  1. 具体请参考:https://blog.csdn.net/cnweike/article/details/38531997
复制代码

12、term和trems:

这两个是精准查找,一个是单数,一次查找单个值。一个是复数,一次查找多个值。

  1. 例如:"terms" : {
  2. "price" : [20, 30]
  3. }
复制代码

13、先看个语句:

  1. GET _search
  2. {
  3. "query": {
  4. "filtered": {
  5. "query": {
  6. "match": {
  7. "text": "quick brown fox"
  8. }
  9. },
  10. "filter": {
  11. "term": {
  12. "status": "published"
  13. }
  14. }
  15. }
  16. }
  17. }
复制代码

(1) 这里的"filtered": 从ES5.0之后被移除了。

(2) filter代表过滤匹配,也是为了过滤status字段,让它不去计算的分数,不用计算权重等。

新的语句为:

  1. GET _search
  2. {
  3. "query": {
  4. "bool": {
  5. "must": {
  6. "match": {
  7. "text": "quick brown fox"
  8. }
  9. },
  10. "filter": {
  11. "term": {
  12. "status": "published"
  13. }
  14. }
  15. }
  16. }
  17. }
复制代码

(3) bool代表的是bool查询,参数紧张 有:

  1. must
  2. 所有的语句都 必须(must) 匹配,与 AND 等价。
  3. must_not
  4. 所有的语句都 不能(must not) 匹配,与 NOT 等价。
  5. should
  6. 至少有一个语句要匹配,与 OR 等价
复制代码

到此这篇关于Elasticsearch属性单词常用剖析 阐明 的文章就先容 到这了,更多干系 Elasticsearch属性单词剖析 内容请搜刮 脚本之家从前 的文章或继续欣赏 下面的干系 文章盼望 大家以后多多支持脚本之家!


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

avatar 祖国统一富强 | 2021-9-17 11:47:45 | 显示全部楼层
这么经典的话只有admin楼主能想到!
回复

使用道具 举报

avatar 天主的爱 | 2021-9-17 11:47:48 | 显示全部楼层
admin楼主,我告诉你一个你不知道的的秘密,有一个牛逼的网站,他卖的服务器是永久的,我们的网站用 服务器都是在这家买的,你可以去试试。访问地址:http://fwq.mxswl.com
回复

使用道具 举报

avatar 我是一头牛2017 | 2021-9-17 13:35:35 | 显示全部楼层
admin楼主,你妈妈喊你回家吃饭!
回复

使用道具 举报

avatar 红军利物浦2017 | 2021-9-17 17:04:44 | 显示全部楼层
在哪里跌倒,就在那里多爬一会儿!
回复

使用道具 举报

avatar 没手棋进负 | 2021-9-18 08:09:06 | 显示全部楼层
东方不败外加灭绝师太啊!
回复

使用道具 举报

avatar 计儿坏 | 2021-9-24 07:18:48 | 显示全部楼层
在这个版块混了这么久了,第一次看见这么给你的帖子!
回复

使用道具 举报

avatar 韶景于璃 | 2021-10-1 18:03:47 | 显示全部楼层
写得实在太好了,我唯一能做的就是默默顶贴!
回复

使用道具 举报

avatar 123457549 | 2021-10-2 21:31:53 | 显示全部楼层
听admin楼主一席话,省我十本书!
回复

使用道具 举报

avatar 123457595 | 2021-10-3 02:03:40 | 显示全部楼层
精华帖的节奏啊!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则