elasticsearch
elasticsearch
环境配置
elasticsearch
依赖
-
是java开发的,需要java环境,1.8.0以上。
-
nodejs
-
安装完成后启动,elasticsearch默认在localhost:9200建立服务。
kibana
-
用于数据的统计、操作
-
安装完成后启动,kibana默认在localhost:5601建立服务。
ik
- 下载地址
- 中文分词,放在elasticsearch中plugins里。
kibana操作指令
增删改查
GET
- GET获取数据
#获取所有数据 |
PUT
- 没有插入数据,否则更新,字段全部变为当前数据
# 索引/类型/uuid |
POST
- 通过
_update,只修改指定字段
POST test1/type1/1/_update |
DELETE
DELETE /test1/type1/1 |
构造查询
- 构造查询可以实现复杂查询需求
全部查询
GET goods/fruit/_search |
排序查询
- 只能选择可排序的属性:日期,数字
GET goods/fruit/_search |
分页查询
GET goods/fruit/_search |
指定内容查询
GET goods/fruit/_search |
- 指定多个
GET goods/fruit/_search |
bool查询
- must:多个条件相互与
- should:多个条件相互或
- must_not:多个条件非
GET goods/fruit/_search |
条件过滤查询
- filter属于bool查询内
- gt/gte/lt/lte
- 对于should做过滤条件,那么返回的结果中,_score的值和是否匹配到should有关,0代表不匹配。一般建议使用must
GET goods/fruit/_search |
查询列表数据
- 多个词检索,使用空格分隔
GET goods/fruit/_search |
短语检索
- 相比于match的方式,在检索内容中的精度更高,必须是匹配的词语
GET goods/fruit/_search |
短语前缀
- 类似于mysql: where name like pingguo%
GET goods/fruit/_search |
高亮检索
- 前置标签和后置标签分开写
GET goods/fruit/_search |
聚合函数
- avg、mean、sum、min、max
- 可以设置size:0使结果不显示数据,仅显示聚合结果
GET goods/fruit/_search |
- 带查询条件的聚合函数
GET goods/fruit/_search |
- 分段聚合函数
GET goods/fruit/_search |
mapping
- mapping的作用就是指定当前字段的类型和大小
- mapping查询
GET goods/fruit/_mapping |
- mapping创建使用
PUT my_index1 |
- 配置
"dynamic":false时,可插入非定义字段,不会建立索引,下面语句查询结果为空 - 配置
"dynamic":true时,可插入非定义字段,会动态建立索引 - 配置
"dynamic":strict时,不可插入非定义字段,会报错
GET goods/fruit/_search |
-
配置
"copy_to":"full_name"指定字段赋值给full_name字段,full_name会包含有自己的值和拷贝的值 -
设置是否添加索引
"index":"false"
lk分词
- 建立字段,添加分析器
ik_max_word是按照词来分,不配置时使用默认分析器,会按照字来分ik_max_word匹配的更多- 可以使用title作为细颗粒的检索,content用分词的检索,效率会高一些。
PUT my_index1 |
- 查询
PUT my_index1/doc/1 |
python操作
安装
pip install elasticsearch |
链接
from elasticsearch import Elasticsearch |
基本操作
- 删除索引
es.indices.delete(index="es_test_01") |
- 插入数据
es.index(index="es_test_01",doc_type="doc",id=1,body={"name":"dasf","age":123}) # 没有配置id,则会默认配置随机id |
- 查询
res = es.get(index="es_test_01",doc_type="doc",id=1) |
- 删除数据
es.delete(index="es_test_01",doc_type="doc",id=1) |
