关于基于elasticsearch的全文检索 建立索引 查询

1、概述

Elasticsearch是一个分布式文档的储存引擎,它可以实时的储存并检索发杂的数据结构(其实是一个序列化的json文档),一旦数据被储存在es服务器中,我们可以在集群的任何一个节点进行搜索。


2、几个重要的概念

1、集群(cluster):

代表一个集群,一个集群可以有多个节点,一个节点只属于一个集群, 不同的集群是通过名字来区别的,elasticsearch目录下的data文件夹下的目录名字代表的就是集群的名字。

2、节点(node):

代表一个节点,是集群的一部分,提供建索和检索的功能,node都有自己的名字,启动时会随机生成一个名字,也可以自己定义一个名字。集群文件夹里面存在node文件夹,存在文件夹0,这个文件夹就是所说的节点。

3、索引库名(indexName):

索引是document的一个集合,名字必须是小写。类似数据库。假设es服务器集群的名字是elasticsearch,索引库名是myindex,那么es服务器目录下的data/elasticsearch/nodes/0/indices文件夹下的myindex文件夹就是索引库名。

4、索引类型(type):

索引类型是对索引库一个更细的划分,类似数据库中具体的某一张表。

5、文档(document)

这个类似数据表中的一行数据。

6、字段(field)

这个类似数据表中的某一列数据。

7、分片

一个分片本身就是一个完整的搜索引擎,文档储存在分片中,而分片储存在集群里的节点中,随着集群的扩大与缩小,es自动将分片在各节点进行迁移,以保证集群的平衡性。

8、mapping

索引映射就是对索引里面的字段和字段类型进行定义。

1、index:定义字段的检索方式和分析类型

1、默认值analyzed:进行分词,编入索引以供搜索;

2、no:则无法通过检索查询到该字段;

3、not_analyzed:不进行分词(整个字段存储为关键词),编入索引以供搜索;

2、store

默认值no,不存储,从_source字段取出;

yes:独立存储。 

在ES中原始的文本会存储在_source里面(除非你关闭了它)。默认情况下其他提取出来的字段都不是独立

存储的,是从_source里面提取出来的。当然你也可以独立的存储某个字段,只要设置store:true即可。

独立存储某个字段,在频繁使用某个特殊字段时很常用。而且获取独立存储的字段要比从_source中解析快得

多,而且额外你还需要从_source中解析出来这个字段,尤其是_source特别大的时候。

不过需要注意的是,独立存储的字段越多,那么索引就越大;索引越大,索引和检索的过程就会越慢....

3、建立索引

1、获取需要建立索引的数据

2、建立客户端对象

3、如果此索引类型下的索引已经存在,对此索引进行删除操作,否则直接进行建索

4、定义索引类型映射

5、批量进行索引




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值