本小札记录所用到的资料:
链接:https://pan.baidu.com/s/1sdnkpWwxoZkozp7omu3X8g
提取码:i2p6
1.站内搜索引擎-es
简介:es是一个基于lucene实时的分布式搜索和分析引擎。
与mysql的体系结构对照:
Elasticsearch | Mysql |
---|---|
索引 | 数据库 |
类型 | 表 |
文档 | 行 |
2.es部署与启动
cmd到bin目录,使用elasticsearch 启动
访问: http://localhost:9200/ 有数据则启动成功。
3.新增索引库
3.1.新建索引:put方式访问:localhost:9200/index_name
3.2.在该索引库中新增文档:【POST】localhost:9200/index_name/doc_name
参数:以json形式(body中传参)
3.3.在目标索引库目标文档下crud操作
3.3.1查询所有:
【GET/POST】localhost:9200/index_name/doc_name/_search
参数:无
3.3.2 指定id查询与条件查询
【GET】localhost:9200/index_name/doc_name/_search?q=content:测
支持模糊查询 : 使用*XX*
【GET】localhost:9200/index_name/doc_name/_search?q=content:*测*
3.3.3 新增与更新
【PUT】localhost:9200/index_name/doc_name/{id}
e.g localhost:9200/index_name/doc_name/1
若id存在则更新,版本号+1,否则新增。
3.3.4 删除(byId)
【DELETE】localhost:9200/index_name/doc_name/1
4.使用head插件操作es
下载head插件
地址:https://github.com/mobz/elasticsearch-head
解压至任意目录(非es目录)
–>安装 node.js
–> 安装cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org
–>安装grunt(grunt是node.js的项目构建工具,可以自动运行设定的任务)
npm install -g grunt-cli
–>安装依赖
在解压后的head目录下cmd执行 cnpm install
–>进入head目录启动head
grunt server
–> 访问: http://localhost:9100/
此时显示是未连接上,存在跨域问题。
5.解决es跨域问题
在es的解压目录下,找到 config/elasticsearch.yml
最后添加:
http.cors.enabled: true
http.cors.allow-origin: "*"
如此,跨域解决。
以上crud操作均可使用可视化操作。
6.在docker中装载head
下载:
docker pull mobz/elasticsearch‐head:5
创建head容器
docker run ‐di ‐‐name=myhead ‐p 9100:9100 docker pull mobz/elasticsearch‐
head:5