一、前言

      说实话,刚测试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属性单词解析内容请搜索Devmax以前的文章或继续浏览下面的相关文章希望大家以后多多支持Devmax!

Elasticsearch属性单词常用解析说明的更多相关文章

  1. Android基础之常用控件属性介绍

    大家好,本篇文章主要讲的是Android基础之常用控件属性介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览

  2. Elasticsearch属性单词常用解析说明

    这篇文章主要介绍了Elasticsearch属性单词常用解析说明,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下

  3. python中的__dict__属性介绍

    这篇文章主要介绍了python中的__dict__属性介绍,首先通过将字典转换成对象的小技巧,展开标题介绍,具有一定的参考价值,下文具体的相关介绍需要的小伙伴可以参考一下

  4. Java操作Elasticsearch rest-high-level-client 的基本使用

    这篇文章主要介绍了Java操作Elasticsearch rest-high-level-client 的基本使用,本篇主要讲解一下 rest-high-level-client 去操作 Elasticsearch的方法,结合实例代码给大家详细讲解,需要的朋友可以参考下

  5. JavaScript 对象的属性和方法4种不同的类型

    JavaScript里,对象的属性和方法支持4种不同的类型,需要的朋友可以参考下。

  6. 第六节 访问属性和方法 [6]

    第四节中介绍了如何调用函数.对于对象的成员来是这样调用的:如果你需要在运行时确定变量的名称,你可以用$this->$Property这样的表达式.如果你想调用方法,可以用$obj->$method().你也可以用->运算符来返回一个函数的值,这在PHP以前的版本中是不允许的.例如,你可以写一个像这样的表达式:$obj->getObject()->callMethod().这样避免了使用一个中间变量,也有助于实现某些设计模式,如Factory模式。

  7. Spring IOC容器的Bean管理基于注解属性注入方式

    这篇文章主要为大家介绍了Spring IOC容器的Bean管理基于注解属性注入方式,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  8. PHP获取对象属性的三种方法实例分析

    这篇文章主要介绍了PHP获取对象属性的三种方法,结合实例形式分析了php面向对象程序设计中获取对象属性的常见操作技巧,需要的朋友可以参考下

  9. vue元素样式实现动态改变方法介绍

    vue通过js动态修改元素的样式,如果是固定的几个样式,我常用的是绑定元素的calss,给不同的class写好需要的样式,js控制是否使用这个class

  10. 常见的JS字符串属性与方法集锦

    字符串的操作在js中非常频繁,也非常重要,下面这篇文章主要给大家介绍了关于JS字符串属性与方法的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

随机推荐

  1. PHP个人网站架设连环讲(一)

    先下一个OmnihttpdProffesinalV2.06,装上就有PHP4beta3可以用了。PHP4给我们带来一个简单的方法,就是使用SESSION(会话)级变量。但是如果不是PHP4又该怎么办?我们可以假设某人在15分钟以内对你的网页的请求都不属于一个新的人次,这样你可以做个计数的过程存在INC里,在每一个页面引用,访客第一次进入时将访问时间送到cookie里。以后每个页面被访问时都检查cookie上次访问时间值。

  2. PHP函数学习之PHP函数点评

    PHP函数使用说明,应用举例,精简点评,希望对您学习php有所帮助

  3. ecshop2.7.3 在php5.4下的各种错误问题处理

    将方法内的函数,分拆为2个部分。这个和gd库没有一点关系,是ecshop程序的问题。会出现这种问题,不外乎就是当前会员的session或者程序对cookie的处理存在漏洞。进过本地测试,includes\modules\integrates\ecshop.php这个整合自身会员的类中没有重写integrate.php中的check_cookie()方法导致,验证cookie时返回的username为空,丢失了登录状态,在ecshop.php中重写了此方法就可以了。把他加到ecshop.php的最后面去就可

  4. NT IIS下用ODBC连接数据库

    $connection=intodbc_connect建立数据库连接,$query_string="查询记录的条件"如:$query_string="select*fromtable"用$cur=intodbc_exec检索数据库,将记录集放入$cur变量中。再用while{$var1=odbc_result;$var2=odbc_result;...}读取odbc_exec()返回的数据集$cur。最后是odbc_close关闭数据库的连接。odbc_result()函数是取当前记录的指定字段值。

  5. PHP使用JpGraph绘制折线图操作示例【附源码下载】

    这篇文章主要介绍了PHP使用JpGraph绘制折线图操作,结合实例形式分析了php使用JpGraph的相关操作技巧与注意事项,并附带源码供读者下载参考,需要的朋友可以参考下

  6. zen_cart实现支付前生成订单的方法

    这篇文章主要介绍了zen_cart实现支付前生成订单的方法,结合实例形式详细分析了zen_cart支付前生成订单的具体步骤与相关实现技巧,需要的朋友可以参考下

  7. Thinkphp5框架实现获取数据库数据到视图的方法

    这篇文章主要介绍了Thinkphp5框架实现获取数据库数据到视图的方法,涉及thinkPHP5数据库配置、读取、模型操作及视图调用相关操作技巧,需要的朋友可以参考下

  8. PHP+jquery+CSS制作头像登录窗(仿QQ登陆)

    本篇文章介绍了PHP结合jQ和CSS制作头像登录窗(仿QQ登陆),实现了类似QQ的登陆界面,很有参考价值,有需要的朋友可以了解一下。

  9. 基于win2003虚拟机中apache服务器的访问

    下面小编就为大家带来一篇基于win2003虚拟机中apache服务器的访问。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  10. Yii2中组件的注册与创建方法

    这篇文章主要介绍了Yii2之组件的注册与创建的实现方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

返回
顶部