安装和使用

使用 docker-compose up 命令运行 ElasticSearch 容器

docker-compose up -d elasticsearch

安装 ElasticSearch 插件

# 安装一个 ElasticSearch 插件
docker-compose exec elasticsearch /usr/share/elasticsearch/bin/elasticsearch-plugin install {plugin-name}
# 重启容器
docker-compose restart elasticsearch

安装 elasticsearch-analysis-ik 中文分词插件

# 方式1,你可以直接在 elasticsearch 容器外,执行以下命令
docker-compose exec elasticsearch /usr/share/elasticsearch/bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.9.1/elasticsearch-analysis-ik-7.9.1.zip

# 方式2,你可以直接进入到 elasticsearch 容器内,然后执行以下命令
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.9.1/elasticsearch-analysis-ik-7.9.1.zip

NOTE:需要注意的是:如果你的 elasticsearch 的版本是 7.9.1 那么,你安装的 ik 插件也必须是 7.9.1 的版本,elasticsearch 的版本号可以通过访问 http://localhost:9200/ 查看 version.number 字段查看,然后 docker-compose restart elasticsearch 重启 elasticsearch 容器即可

安装 elasticsearch-analysis-ik 过程如下所示


[root@f1831cb3b4dd elasticsearch]# ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.9.1/elasticsearch-analysis-ik-7.9.1.zip
-> Installing https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.9.1/elasticsearch-analysis-ik-7.9.1.zip
-> Downloading https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.9.1/elasticsearch-analysis-ik-7.9.1.zip
[=================================================] 100%??
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@     WARNING: plugin requires additional permissions     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
* java.net.SocketPermission * connect,resolve
See http://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html
for descriptions of what these permissions allow and the associated risks.

Continue with installation? [y/N]y
-> Installed analysis-ik
[root@f1831cb3b4dd elasticsearch]# ./bin/elasticsearch-plugin list
analysis-ik

查看插件列表

./bin/elasticsearch-plugin list
  1. 提交数据中的 properties 代表这个索引中各个字段的定义,其中 key 为字段名称,value 是字段的类型定义 type 定义了字段的数据类型,常用的有 text / integer / date / boolean ,还有更多类型

  2. keyword,这是字符串类型的一种,这种类型是告诉 Elasticsearch 不需要对这个字段做分词,通常用于邮箱、标签、属性等字段。

  3. scaled_float 代表一个小数位固定的浮点型字段,与 Mysql 的 decimal 类型类似。

  4. scaling_factor 用来指定小数位精度,100 就代表精确到小数点后两位。

  5. nested 代表这个字段是一个复杂对象,由下一级的 properties 字段定义这个对象的字段。

  6. analyzer是一个新的概念,这是告诉 Elasticsearch 应该用什么方式去给这个字段做分词,这里我们用了 ik_smart,是一个中文分词器。

  7. copy_to,Elasticsearch 的多字段匹配查询是不支持查询 Nested 对象的字段,但是我们又必须查询 categories.name 字段,因此我们可以使用 copy_to 参数,可以将 categories.name 字段复制到上层,我们就可以通过 categories_name 字段做多字段匹配查询