Elasticsearch基础学习(1)

Elasticsearch基础学习

集群·节点·索引·类型·文档·分片·映射

elasticsearch是面向文档关系行数据库和elasticsearch客观的对比!一切都是json

Relational DBElaticsearch
数据库(Database)索引(indices)
表(tables)types
行(rows)documents
字段(columns)fields

elasticsearch中可以包含多个索引(数据库),每个索引中可以包含多个类型(表),每个类型下又包含多个文档(行),每个文档中又包含多个字段(列)。

elasticsearch在后台把每个索引划分成多个分片,每哥分片可以在集群中不同的服务器中间之前迁移

索引是映射类型的容器,elasticsearch中的索引是一个非常大的文档集合。索引存储了映射类型的字段和其他设置。然后它们被存储到各个分片上了。

倒排索引

elasticsearch使用的是一种称为倒排索引的结构,采用lucene倒排索引作为底层。这种结构适用于快速的全文搜索,一个索引由文档中所有不重复的列表构成,

对于每一个词,都有一个包含它的文档列表。例如现在有两根文档。

Study every day, day day up。           # 文档1包含的内容

Forever,study every day, good life。# 文档2包含的内容

term

doc_1

doc_2
Study×
Forever×
every
study×
day
up×
good×
life×

现在搜索 good life

只有文档2两个条件都满足,所以文档2的权重更高。

完全过滤掉无关的所有数据,来提高效率。

 elasticsearch索引是由多个lucene索引组成的。

IK分词器插件

分词器:即使把一段中文或者别的划分成一个个的关键字,我们在搜索的时候会把自己的信息进行分词,会把数据库中或者索引库中的数据进行分词,然后进行匹配操作

默认的中文分词是每个字看成一个词。

下载

https://github.com/medcl/elasticsearch-analysis-ik

放入elasticsearch的插件里(注意版本对应)

elasticsearch-plugins

重启es

elasticsearch-plugin list  查看加载的插件

ik_smart(最少切分)

在kibana的开发工具上
GET _analyze
{
    "analyzer": "ik_smart",
    "text": "文本输入"
}

ik_max_word(最细粒度划分)(穷尽词库的可能!)

GET _analyze
{
    "analyzer": "ik_max_word",
    "text": "文本输入"
}

被拆开的词,需要自己加到分词器中

到elasticsearch-plugins/ik/config

IKAnalyzer.cfg.xml里面写

创建一个ding.dic  加入自己写的词,然后在IKAnalyzer.cfg.xml里加入扩展字典,就有我们自己的字典了。

重启ES

Rest风格说明

method

                          URL

描述
PUTlocalhost:9200/索引名称/类型名称/文档id创建文档
POSTlocalhost:9200/索引名称/类型名称创建文档
POSTlocalhost:9200/索引名称/类型名称/文档id/_update修改文档
DELETElocalhost:9200/索引名称/类型名称/文档id删除文档
GETlocalhost:9200/索引名称/类型名称/文档id查询文档通过文档id
POSTlocalhost:9200/索引名称/类型名称/文档id/_search查询所有数据

 

 

PUT /索引名/~类型名字~/文档id
{请求体}

PUT /test1/type1/1
{
    "name": "基础学习",
    "age": 3
}
{
  "_index" : "test1",          #创建的库
  "_type" : "type1",           #类型
  "_id" : "1",                 #id
  "_version" : 1,              #版本没有更新过就是1
  "result" : "created",        #创建状态
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  },
  "_seq_no" : 0,
  "_primary_term" : 1
}

完全了自动增加索引。

那么name这个字段用不用指定类型呢,关系型数据库都要指定类型

字符串类型

text·keyword

数值类型

long·integer·short·byte·double·float·half float·scaled float

日期类型

date

布尔值类型

boolean

二进制类型

binary

关于索引的基本操作

创建索引规则

获取规则!通过GET请求

查看默认的信息

如果自己的文档没有指定,那么es就会给我们默认配置字段类型!

扩展:通过命令elasticsearch索引情况!

修改索引!覆盖值

修改了之后版本号会增加

现在的修改办法

删除索引

参考

https://www.bilibili.com/video/BV17a4y1x7zq?p=9

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值