ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Elasticsearch系列——kibana安装、elasticsearch-head安装、es安装插件、倒排索引、索引操作(数据库)、映射管理(类型)(表)、文档基本增删查、文档查询、模糊查询

2022-01-17 22:02:12  阅读:146  来源: 互联网

标签:lqz GET doc 索引 文档 elasticsearch 安装 es


文章目录

昨日回顾

# django,flask,sanic,fastapi
# net/http的包,封装好了
# go 语言的beego框架,gin,echo
# beego:缓存,orm,session,日志内置(中文)
	-整体的设计理念,都源自django
    -bee工具(创建,允许项目)
    -main.go
    -到项目目录下:go build
# gin:文档,gorm(beego的orm)
	-路由
    -session 
    -表单验证(第三方模块)

# net/http包,可以做http客户端(爬虫),http服务端(web服务),beego,gin基于它写的
# template包,官方模板渲染的包


# es介绍
	-java开发,基于Lucene,封装,做成服务,通过resful接口实现调用
    -es和Solr,新型互联网都是es
    -es核心概念
    	-集群
        -节点
        -分片(es都有了)
        -副本
        -全文检索
    -大数据量的搜索:近实时,分析
    -跟传统mysql比较
    	-数据库             ----索引
        -表                ----类型(es 6以后,一个索引下只能有一个类型,7以后,完全不允许)
        -一行行数据         ----文档
        -字段属性           ----映射(mapping)
    -haystack:只支持6之前的版本(django框架中的全文检索扩展)
    	-es,Solr,Whoosh(python写的全文搜索框架,简单,不需要额外安装软件)
    -elk:
    	-elasticsearch+Logstash+kibana
# 中间件
	-(django中间件)
    -服务器中间件(uwsgi)
    -消息队列中间件(rabbitmq)
    -数据库中间(Mycat,分库分表,集群(mysql官方不支持集群))
    
    
# es安装
	-任何平台都需要装jdk
    	-window一路下一步
        -mac:一路下一步
     -java -version
    	1.8以上(java15 ,85%以上的公司还在用1.8)
    -官网把es对于平台的版本的zip下载下来,解压
    -bin路径下指向elasticsearch可执行文件
    -http://127.0.0.1:9200/

1 kibana安装(postman)

1 客户端:浏览器,postman,kibana,elasticsearch-head(没有桌面版客户端)

2 官方提供的
	-Kibana 是一款开源的数据分析和可视化平台
    -Kibana一定要跟es版本对应,咱们用的都是7.5.0
3 解压,就可以运行
4 连接es,需要配置
	-修改kibana配置
    # kibana监听的端口和地址
    server.port: 5601
    server.host: "127.0.0.1"
    server.name: lqz
    # 连接哪个es
    elasticsearch.hosts: ["http://localhost:9200/"]

2 elasticsearch-head安装

1 第三方开发的一个es客户端(nodjs开发的,装node环境)
2 下载,解压
3 npm install  安装依赖
4 npm run serve 跑起来
5 会出现跨域,修改es配置
    http.cors.enabled: true
    http.cors.allow-origin: "*"
6 浏览器输入
	http://localhost:9100/

3 es安装官方,第三方插件

# 三种安装方式
# 推荐用第三种
 **第一种:命令行**
bin/elasticsearch-plugin install [plugin_name]
# bin/elasticsearch-plugin install analysis-smartcn  安装中文分词器

**第二种:url安装**

bin/elasticsearch-plugin install [url]
#bin/elasticsearch-plugin install https://artifacts.elastic.co/downloads/elasticsearch-plugins/analysis-smartcn/analysis-smartcn-6.4.0.zip

**第三种:离线安装**
#https://artifacts.elastic.co/downloads/elasticsearch-plugins/analysis-smartcn/analysis-smartcn-6.4.0.zip
#点击下载analysis-smartcn离线包
#将离线包解压到ElasticSearch 安装目录下的 plugins 目录下
#重启es。新装插件必须要重启es
​```

**注意:插件的版本要与 ElasticSearch 版本要一致**

3 倒排索引

1 倒排索引:对文章进行分词,对每个词建立索引,由于这样建,会出现索引爆炸,索引索引跟标题建关系,标题再跟文章建索引,如下:
	分词---文章建立索引                             |

| 今天(索引)    | (文章1,<2,10>,2) (文章3,<8>,1)       |
| 星期天(索引) | (文章2,<12,25,100>,3)                 |
| 出去玩(索引) | (文章5,<11,24,89>,3)(文章1,<8,19>,2) |

今天出现在哪个文章,出现的位置和出现的次数

4 索引操作(数据库)

1 新建索引
PUT lqz2
{
  "settings": {
    "index":{
      "number_of_shards":5,
      "number_of_replicas":1
    }
  }
}

# 新建索引
PUT lqz2
{
  "settings": {
    "index":{
      "number_of_shards":5,
      "number_of_replicas":1
    }
  }
}
PUT lqz


# 查看索引
GET lqz2/_settings
GET lqz/_settings
GET _all/_settings

GET lqz,lqz2/_settings
GET _settings


# 修改索引(一般不太用,只能用来修改副本数量)
#修改索引副本数量为2  分片的数量一开始就要定好
# 副本数量可以改(有可能会出错)
PUT lqz/_settings
{
  "number_of_replicas": 2
}

PUT  _all/_settings
{
"index": {
  "blocks": {
    "read_only_allow_delete": false
    }
  }
}



# 删除索引
DELETE lqz


5 映射管理(类型)(表)

#1  在Elasticsearch 6.0.0或更高版本中创建的索引只包含一个mapping type。 在5.x中使用multiple mapping types创建的索引将继续像以前一样在Elasticsearch 6.x中运行。 Mapping types将在Elasticsearch 7.0.0中完全删除



##索引如果不创建,只有插入文档,会自动创建

# 创建映射(类型,表)
PUT books
{
  "mappings": {
    "properties":{
      "title":{
        "type":"text",
        "analyzer": "ik_max_word"
      },
      "price":{
        "type":"integer"
      },
      "addr":{
        "type":"keyword"
      },
      "company":{
        "properties":{
          "name":{"type":"text"},
          "company_addr":{"type":"text"},
          "employee_count":{"type":"integer"}
        }
      },
      "publish_date":{"type":"date","format":"yyy-MM-dd"}
      
    }
    
  }
}



###查看映射
GET lqz/_mapping
GET _all/_mapping


# 特殊说明索引映射都不存在,也可以插入文档
PUT lqz1/_doc/1
{
  "title":"白雪公主和十个小矮人",
  "price":"99",
  "addr":"黑暗森里",
  "publish_date":"2018-05-19",
  "name":"lqz"
}
# 查看索引
GET lqz/_settings
#查看映射
GET lqz/_mapping

6 文档基本增删查改(一行一行数据)

# 1 插入文档
PUT books/_doc/1
{
  "title":"大头儿子小偷爸爸",
  "price":100,  
  "addr":"北京天安门",
  "company":{
    "name":"我爱北京天安门",
    "company_addr":"我的家在东北松花江傻姑娘",
    "employee_count":10
  },
  "publish_date":"2019-08-19"
}

PUT books/_doc/2
{
  "title":"白雪公主和十个小矮人",
  "price":"99", #写字符串会自动转换
  "addr":"黑暗森里",
  "publish_date":"2018-05-19"
}

PUT books/_doc/3
{
  "title":"白雪公主和十个小矮人",
  "price":"99", #写字符串会自动转换
  "addr":"黑暗森里",
  "publish_date":"2018-05-19",
   "name":"lqz"
}



# 查询文档
GET lqz/_doc/1

# 修改文档两种方式
# 第一种
PUT lqz/_doc/1
{
  "name":"顾老二",
  "age":30,
  "from": "gu",
  "desc": "皮肤黑、武器长、性格直",
  "tags": ["黑", "长", "直"]
}
# 第二种(局部修改)
POST lqz/_doc/1/_update
{
  "doc": {
    "desc": "皮肤很safasdfsda黄,武器很长,性格很直",
    "tags": ["很黄","很长", "很直"]
  }
}



# 删除文档
DELETE lqz/_doc/4

7 文档查询

###查询字符串
# 查询from字段是gu的所有人
GET lqz/_doc/_search?q=from:gu
# 查询age是22的人
GET lqz/_doc/_search?q=age:22

GET lqz/_doc/_search?q=desc:不知道
    
    
    
###结构化查询

GET lqz/_doc/_search
{
  "query": {
    "match": {
      "from": "gu"
    }
  }
}

GET lqz/_doc/_search
{
  "query": {
    "match": {
      "from":"gu"
    }
  }
}

8 模糊查询

match_all:查询所有
match_phrase:短语查询

GET t1/doc/_search
{
  "query": {
    "match_phrase": {
      "title": {
        "query": "中国世界",
        "slop": 2  # 中国和世界之间最多间隔2个字符
      }
    }
  }
}


标签:lqz,GET,doc,索引,文档,elasticsearch,安装,es
来源: https://blog.csdn.net/zdw20190510/article/details/114494858

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有