Elasticsearch属性单词常用解析说明

 更新时间:2021年8月10日 16:00  点击:2167

一、前言

      说实话,刚测试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 等价

到此这篇关于Elasticsearch属性单词常用解析说明的文章就介绍到这了,更多相关Elasticsearch属性单词解析内容请搜索猪先飞以前的文章或继续浏览下面的相关文章希望大家以后多多支持猪先飞!

[!--infotagslink--]

相关文章

  • 浅谈C# 字段和属性

    这篇文章主要介绍了C# 字段和属性的的相关资料,文中示例代码非常详细,供大家参考和学习,感兴趣的朋友可以了解下...2020-11-03
  • js修改input的type属性问题探讨

    js修改input的type属性有些限制。当input元素还未插入文档流之前,是可以修改它的值的,在ie和ff下都没问题。但如果input已经存在于页面,其type属性在ie下就成了只读属性了,不可以修改。...2013-10-19
  • Elasticsearch工具cerebro的安装与使用教程

    这篇文章主要介绍了Elasticsearch工具cerebro的安装与使用教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-03-08
  • Vue之计算属性详解

    这篇文章主要为大家介绍了Vue的计算属性,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助...2021-11-16
  • docker 启动elasticsearch镜像,挂载目录后报错的解决

    这篇文章主要介绍了docker 启动 elasticsearch镜像,挂载目录后报错的解决,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-20
  • C# Dynamic关键字之:调用属性、方法、字段的实现方法

    本篇文章是对C#中调用属性、方法、字段的实现方法进行了详细的分析介绍,需要的朋友参考下...2020-06-25
  • 关于vue属性使用和不使用冒号的区别说明

    这篇文章主要介绍了关于vue属性使用和不使用冒号的区别说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-10-22
  • 详解jquery方法属性

    这篇文章主要介绍了jquery的方法属性,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2021-11-10
  • C# 列表List的常用属性和方法介绍

    这篇文章主要介绍了C# 列表List的常用属性和方法介绍,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-04-12
  • 在Vue中获取自定义属性方法:data-id的实例

    这篇文章主要介绍了在Vue中获取自定义属性方法:data-id的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-09-09
  • 轻松学习C#的属性

    轻松学习C#的属性,对C#的属性感兴趣的朋友可以参考本篇文章,帮助大家更灵活的运用C#的属性。...2020-06-25
  • C#类中属性与成员变量的使用小结

    本篇文章主要是对C#类中属性与成员变量的使用进行了总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助...2020-06-25
  • 一文搞定Docker安装ElasticSearch的过程

    通过本文可以帮助大家快速学习Docker安装ElasticSearch的过程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧...2021-08-31
  • angularjs循环对象属性实现动态列的思路详解

    这篇文章主要介绍了angularjs循环对象属性实现动态列的思路详解,本文给大家分享一个demo代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-11-02
  • JavaScript中的全局属性与方法深入解析

    这篇文章主要给大家介绍了关于JavaScript中全局属性与方法的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用JavaScript具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧...2020-06-14
  • JS如何判断对象是否包含某个属性

    这篇文章主要介绍了JS如何判断对象是否包含某个属性,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-08-30
  • SpringBoot 返回Json实体类属性大小写的解决

    这篇文章主要介绍了SpringBoot 返回Json实体类属性大小写的解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-10-14
  • C#中属性和成员变量的区别说明

    本篇文章主要是对C#中属性和成员变量的区别进行了介绍说明。需要的朋友可以过来参考下,希望对大家有所帮助...2020-06-25
  • golang elasticsearch Client的使用详解

    这篇文章主要介绍了golang elasticsearch Client的使用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-05-04
  • 详解EFCore中的导航属性

    这篇文章主要介绍了详解EFCore中的导航属性的相关资料,帮助大家更好的理解和学习使用ASP.NET CORE,感兴趣的朋友可以了解下...2021-09-22