elasticsearch - 概念,基操

elasticsearch的核心概念:

   Near Realtime(NRT):近实时性,从写入数据到可以被搜索到会有一个小小的延迟

   Cluster:集群,包含多个节点,每个节点属于哪个集群是通过配置节点的所属集群名称,默认是elasticsearch

   Node:节点,每个节点也有一个名称,默认系统分配的,默认也会加入一个名为elasticsearch的集群中。

   Document&field:文档,是es中的最小数据单元,一个document可以是一条数据,用json数据结构表示,一个index的type下有多个document,每个document下由多个字段field组成。

   Index:索引

   Type:类型,一个索引下还可以分为多个类型,类型下就是document。

   shard:每个索引会被分片,部署在不同的机器当中。

  replica:分片后的shard为primary shard,对其进行复制一份为replica shard,提高的可用性和吞吐量。

 

 

 

基本操作:

status有三种状态:

green:每个索引的primary shard和replica shard都是active状态的
yellow:每个索引的primary shard都是active状态的,但是部分replica shard不是active状态
red:    不是所有索引的primary shard都是active状态的

查看集群中有哪些索引;

创建索引;

删除索引;

 

 

 

document的crud:

新增:

查询:

更新:更新的时候有两种方式,一种是进行替换,另一种是进行局部修改(底层也是替换)

document是 被替换了,,不是created。进行替换要编辑全部的document属性。

局部修改:

 

删除:

.

 

 

 

多种搜素方式;

1. query string search:

查询所有:

took:耗费了几毫秒
timed_out:是否超时
_shards:数据拆成了5个分片,所以对于搜索请求,会打到所有的primary shard(或者是它的某个replica shard也可以)
hits.total:查询结果的数量,2个document
hits.max_score:score的含义,就是document对于一个search的相关度的匹配分数,越相关,就越匹配,分数也高
hits.hits:包含了匹配搜索的document的详细数据

query string search的由来,因为search参数都是以http请求的query string来附带的

搜索商品名称中包含yagao的商品,而且按照售价降序排序:GET /index/type/_search?q=name:aaa

适用于临时的在命令行使用一些工具,比如curl,快速的发出请求,来检索想要的信息;但是如果查询请求很复杂,是很难去构建的
在生产环境中,几乎很少使用query string search

 

2. query DSL  (Domain Specified Language)

查询所有:

降序查找:

分页:

只查出指定字段:

3、query filter

按照范围查找:

4、full-text search(全文检索)

这里这个  name  字段会被拆解,建立倒排索引,然后进行匹配查询

5、phrase search(短语搜索)

跟全文检索相对应,相反,全文检索会将输入的搜索串拆解开来,去倒排索引里面去一一匹配,只要能匹配上任意一个拆解后的单词,就可以作为结果返回
phrase search,要求输入的搜索串,必须在指定的字段文本中,完全包含一模一样的,才可以算匹配,才能作为结果返回

6、highlight search(高亮搜索结果)

聚合操作:

分组:

先对分组的字段进行设置。将fielddata属性设置为 true

然后再进行分组搜索:

分组之后取平均值.排序

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值