elasticsearch概念
1. 集群:一个或者多个节点组织在一起
2. 节点:一个节点是集群中的一个服务器,有一个名字来标识,默认是一个随机的漫威角色的名字
3. 分片:将索引划分为多份的能力,允许水平分割和扩展容量,多个分片响应请求,提高性能和吞吐量
4. 副本:创建分片的一份或者多分的能力,在一个节点失败其余节点可以顶上
elasticsearch与mysql对应关系
index(索引) --- 数据库
type(类型) --- 表
documents(文档) --- 行
fields --- 列
HTTP方法
GET、POST、HEAD、OPTIONS、PUT、DELETE、TRACE、CONNECT
倒排索引
倒排索引源于实际应用中需要根据属性的值来查找记录。这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(inverted index)。带有倒排索引的文件我们称为倒排索引文件,简称倒排文件(inverted file)。
待解决问题:
1、大小写转换问题
2、词干抽取,如looking和look
3、分词
4、倒排索引文件过大 - 压缩编码
elasticelasticsearch文档、索引的CRUD操作
# 索引初始化操作
# 制定分片和副本的数量 # shards一旦设置不能修改 PUT test { "settings":{ "index":{ "number_of_shards":5, "number_of_replicas":1 } } } # 读取setting信息,多个之间的逗号没有空格 GET test/_settings GET _all/_settings GET .Kibana,test/_settings # 修改settings PUT test/_settings { "number_of_replicas":3 } # 保存文档,无需先新建类型job,1是id,不填会自动生成一个 PUT test/job/1 { "title":"elasticsearch文档、索引的CRUD操作", "city":"厦门", "company":{ "name":"美图", "company_addr":"厦门市软件园" } } # 获取job的信息 GET test/job/1 GET test/job/1?_source GET test/job/1?_source=title GET test/job/1?_source=title,city # 修改文档,方法一直接覆盖,方法二update PUT test/job/1 { "title":"elasticsearch文档、索引的CRUD操作", "city":"厦门", "company":{ "name":"美图", "company_addr":"厦门市软件园三期" } } PUT test/job/1/_update { "doc":{ "company_addr":"厦门市软件园三期" } } # 删除,类型不支持在Kibana删除 DELETE test/job/1 DELETE test/job DELETE test