ElasticSerach流程

1 篇文章 0 订阅

1.ElasticSerach定义:

ES=elasticsearch简写,

Elasticsearch是一个开源的高扩展的分布式全文检索引擎,

它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。

Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,

但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,

从而让全文搜索变得简单。

 

2.ES和Lucene区别:

1)Lucene只是一个库。想要使用它,你必须使用Java来作为开发语言并将其直接集成到你的应用中,

更糟糕的是,Lucene非常复杂,你需要深入了解检索的相关知识来理解它是如何工作的。

 

2)Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,

但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。

 

ES和Solr区别

 

3.ES数据架构和Mysql对比

Index ---- DataBase

Type ----- Table

Document--- Row

 

4.ES集群颜色

绿色:健康,主分片和副分片都可用

黄色:警告,主分片可用,没有副本分片

红色:错误,主分片中部分索引已经不可使用,但是不影响其他分片正常使用

 

5.RESTfull 风格

POST : 添加

GET : 查询

PUT : 修改 (没有此数据则添加数据,如果有则修改数据)

DELETE: 删除

 

6.文档索引的创建

http://localhost:9200/book-002/jk-book/1/

请求方法为 : POST

{

"_index": "book-002", 索引名称

"_type": "jk-book", 类型名称

"_id": "1", 唯一ID,如果指定了ID则使用指定的,没有指定ID则ES会自动补充ID

"_version": 1, 数据版本号,新创建的数据从1开始,每次对数据修改则加1

"result": "created", created:创建成功,updated:修改成功

"_shards": {

"total": 2,

"successful": 1,

"failed": 0

},

"_seq_no": 0,

"_primary_term": 1

}

 

7.启动Kibana 在/bin/kibana.bat

访问:http://localhost:5601

启动Kibana后会在ES中创建一个名为.Kibana所以只有一个分片

8.kibana操作语法和命令

GET _cat/health 查看当前索引状态

 

GET _cat/indices 查看所有集群状态

 

GET _search 查询所有内容

{

"query": {

"match_all": {

}

}

}

 

查询指定索引和类型

GET /book-002/jk-book/_search

{

"query": {

"match_all": {

}

}

}

 

添加数据

POST /book-002/jk-book/3

{

"id":3,

"name":"springCluod",

"author":"王听话",

"price":250,

"createTime":"2019-01-22"

}

 

修改数据

PUT /book-002/jk-book/3

{

"id":3,

"name":"springCluod",

"author":"王不听话",

"price":250,

"createTime":"2019-01-22"

}

 

删除数据

DELETE /book-002/jk-book/4

 

GET /book-002/jk-book/_search

{

"query": {

"match": {

"name": "ES6" 条查

}

},

"highlight": {

"fields": {

"name": {} 指定字段高亮 <em>内容</em>

}

}

}

页面设置高亮

em {

font-style: normal;

color: #c00;

}

 

区间查询 结合 bool使用

GET /book-002/jk-book/_search

{

"query": {

"bool": {

"must": [

{

"match_all": {}

}

],

"filter": {

"range": {

"price": {

"gte": 201, 大于等于

"lte": 300 小于等于

}

}

}

}

}

}

短语搜索

GET /book-002/jk-book/_search

{

"query": {

"match_phrase": {

"name": "大数据"

}

}

}

 

sort 排序 from起始条数 size每页条数

GET /book-002/jk-book/_search

{

"query": {

"match_all": {}

},

"sort": [

{

"price.keyword": { 排序字段

"order": "asc"

}

}

],

"from": 2,

"size": 2

}

 

7.ES配置ik分词器,ik分词器官方已经提供好词汇

将ik分词器的配置信息放入 在es目录/plugins/ik/ 目录下

注意ik目录需要手动创建

ik_smart: 简单分词器方式,只能组成一次词汇进行分词

ik_max_word: 深度分词器方式,将所有能组成的词汇进行分词

standard:标准分词器

自定义词汇

在ik目录下创建自定义词汇文件:文件名.dic

在文件中添加词汇格式为:每行为一个词汇

注意:更新后自定义词汇只会对之后的数据起作用

 

同义词:

1.创建文件:在es目录/config/analysis/synonym.txt

2.文件内容同义词汇为一行每个词汇用逗号分隔

3.创建索引的时候指定同义词汇文件

PUT /index-ik-006/

{

"settings": {

"number_of_shards": 5, #指定分片数量

"number_of_replicas": 1, #指定副本数量

"analysis": { #自定义分词方式

"analyzer": { #创建自自定义分词方式

"ik_synonym": { #指定分词方式名称,会在映射属性的时候用到

"type": "custom",

"tokenizer": "ik_max_word", #指定同义词类型为ik_max_word

"filter": [

"my_synonym_filter" #找到同义词过滤器

]

}

},

"filter": { #配置分词过滤器

"my_synonym_filter": {

"type": "synonym", #指定类型为同义词

"synonyms_path": "analysis/synonym.txt" #指定同义词配置文件

}

}

}

}

}

4.对属性添加映射

#添加属性映射以及指定那个属性进行分词

POST /index-ik-006/test-ik/_mapping

{

"properties": {

"content":{

"type": "text",

"analyzer": "ik_synonym", #分词方式为自定义同义词方式,创建索引的时候有定义

"store": true

},

"price":{

"type": "double"

}

}

}

5. 添加数据,搜索数据

#给索引添加数据

POST /index-ik-006/test-ik/100

{

"content":"御帝哥哥",

"price":100

}

 

GET /index-ik-006/test-ik/_search

{

"query": {

"match": {

"content": "玄奘"

}

},

"highlight": {

"fields": {

"content": {}

}

}

}

3.五年高考,三年模拟

同义词--》分词:

西红柿-> 番茄,洋柿子,圣女果

土豆->马铃薯,tudou,tu豆

红薯->地瓜,番薯

5年---》五年

gaokao--》高考

3nian ---》 三年

mo拟--》模拟

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值