一、底层技术
- 文档元数据
- _index
- 文档在哪存放
- _type(7版本之后就没有类型这个概念了)
- 文档表示的对象类别
- _id
- 文档唯一标识
- 文档格式
- /{index}/{type}/{id} 确定一个文档
- 分词
- 分词器 IK
- 自增扩展字典
- 剔除部分词字典
- 倒排索引
- 分析器 analyzer
- 过滤器 character filters
- 分词 tokenizer
- 小写 tiken filter
- 内置的分词器
二、特性
- 1、分布式
- 2、全文搜索
- 3、搜索引擎
三、安装
- 1、安装ES
- docker 方式启动
mkdir -p /data/elasticsearch/config/ mkdir -p /data/elasticsearch/data/ chmod 777 -R /data/elasticsearch/ ## 注意冒号后面有 空格 echo "http.host: 0.0.0.0" >> /data/elasticsearch/config/elasticsearch.yml docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \ -e "discovery.type=single-node" \ -e ES_JAVA_OPTS="-Xms128m -Xmx256m" \ -v /data/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \ -v /data/elasticsearch/data:/usr/share/elasticsearch/data \ -v /data/elasticsearch/plugins:/usr/share/elasticsearch/plugins \ -d docker.elastic.co/elasticsearch/elasticsearch:7.10.1
- 2、客户端kibana
- docker 方式启动
docker run -d --name kibana \ -e ELASTICSEARCH_HOSTS="http://127.0.0.1:9200/" \ -p 5601:5601 kibana:7.10.1
四、语法
- 1、添加数据
- PUT
- 需要ID
- POST
- 有没有ID都可以
- 2、删除 delete
DELETE user/_doc/1
- 3、更改 update
POST user/_update/2 { "doc":{ "age":18 } } // 加doc会做检测,如果相同不进行修改
- 4、查询 query
- source 返回部分数据
- search 条件查询
- URL: GET _search?q=bobby
- BODY:
GET user/_search { "query":{ "match_all":{} } }
- 不会进行分词,不区分大小写。(原子操作)
- 计算字符串的距离
- must: 必须满足
- must_not: 必须不满足
- should: 非必需满足,会影响评分
- filter: 必需匹配,不影响评分
- 5、批量操作(bulk)
POSST _bulk {"index":{"_index":"test","id":"1"}} {"name":"bobby"} {"index":{"_index":"test","id":"2"}} {"name":"bobby2"}
- 6、批量获取 mget
GET /_mget { "docs":[ { "_index":"text", "_id":"1" }, { "_index":"text", "_id":"2" } ] }
- 7、数据类型 mappings
类型 | 介绍 | 备注 |
text | ㅤ | 会被分词 |
keyword | ㅤ | 不会被分词 |
long | ㅤ | ㅤ |
五、常用
GET _cat/indices | 查看所有表 |
PUT | 修改数据 |
ㅤ | ㅤ |