天天看点

第 8 章 Elasticsearch

目录

<dl></dl>

<dt>8.1. 安装 Elasticsearch</dt>

<dd><dl></dl></dd>

<dt>8.1.1. 6.x 安装</dt>

<dt>8.1.2. 单机模式 (适用于开发环境) 5.x </dt>

<dt>8.1.3. Elasticsearch Cluster 5.x</dt>

<dt>8.1.4. 负载均衡配置</dt>

<dt>8.1.5. 安装指定版本的 Elasticsearch</dt>

<dt>8.1.6. Plugin</dt>

<dt>8.1.6.1. elasticsearch-analysis-ik</dt>

<dt>8.1.6.2. elasticsearch-analysis-pinyin</dt>

<dt>8.2. 文档API</dt>

<dt>8.2.1. 快速上手</dt>

<dt>8.2.2. 写入 PUT/POST</dt>

<dt>8.2.3. 获取 GET</dt>

<dd><dl><dt>8.2.3.1. _source</dt></dl></dd>

<dt>8.2.4. 检查记录是否存在</dt>

<dt>8.2.5. 删除 Delete</dt>

<dt>8.2.6. 参数</dt>

<dd><dl><dt>8.2.6.1. pretty 格式化 json</dt></dl></dd>

<dt>8.3. 搜索</dt>

<dt>8.3.1. URL 搜索</dt>

<dt>8.3.2. 分页</dt>

<dt>8.4. Query DSL</dt>

<dt>8.4.1. match 匹配</dt>

<dt>8.4.2. multi_match 多字段匹配</dt>

<dt>8.4.3. Query bool 布尔条件</dt>

<dt>8.4.3.1. must</dt>

<dt>8.4.3.2. should</dt>

<dt>8.4.3.3. must_not</dt>

<dt>8.4.4. filter 过滤</dt>

<dt>8.4.5. sort 排序</dt>

<dt>8.4.6. _source</dt>

<dt>8.4.7. highlight 高亮处理</dt>

<dt>8.5. 集群管理</dt>

<dt>8.5.1. 节点健康状态</dt>

<dt>8.5.2. 节点http状态</dt>

<dt>8.5.3. 查看master节点</dt>

<dt>8.5.4. 查看索引的节点分布</dt>

<dt>8.5.5. 索引的开启与关闭</dt>

<dt>8.5.5.1. _open</dt>

<dt>8.5.5.2. _close</dt>

<dt>8.6. 中文分词插件管理</dt>

<dt>8.6.1. 通过 elasticsearch-plugin 命令安装分词插件</dt>

<dt>8.6.2. 手工安装插件</dt>

<dt>8.6.3. 创建索引</dt>

<dt>8.6.4. 删除索引</dt>

<dt>8.6.5. 配置索引分词插件</dt>

<dd><dl><dt>8.6.5.1. 测试分词效果</dt></dl></dd>

<dt>8.7. 索引管理</dt>

<dt>8.7.1. 查看索引</dt>

<dt>8.7.2. 删除索引</dt>

<dt>8.8. 映射</dt>

<dt>8.8.1. 查看 _mapping</dt>

<dt>8.8.2. 删除 _mapping </dt>

<dt>8.8.3. 创建 _mapping</dt>

<dt>8.8.4. 更新 mapping</dt>

<dt>8.8.5. 修改 _mapping</dt>

<dt>8.8.6. 数据类型</dt>

<dd><dl><dt>8.8.6.1. date</dt></dl></dd>

<dt>8.9. Alias management 别名管理</dt>

<dt>8.9.1. 查看索引别名</dt>

<dt>8.9.2. 创建索引别名</dt>

<dt>8.9.3. 修改别名</dt>

<dt>8.9.4. 删除别名</dt>

<dt>8.10. Example</dt>

<dt>8.10.1. 新闻资讯应用案例</dt>

<dt>8.10.2. 文章搜索案例</dt>

<dt>8.11. Migrating MySQL Data into Elasticsearch using logstash</dt>

<dt>8.11.1. 安装 logstash</dt>

<dt>8.11.2. 配置 logstash</dt>

<dt>8.11.3. 启动 Logstash</dt>

<dt>8.11.4. 验证</dt>

<dt>8.11.5. 配置模板</dt>

<dt>8.11.5.1. 全量导入</dt>

<dt>8.11.5.2. 多表导入</dt>

<dt>8.11.5.3. 通过 ID 主键字段增量复制数据</dt>

<dt>8.11.5.4. 通过日期字段增量复制数据</dt>

<dt>8.11.5.5. 指定SQL文件</dt>

<dt>8.11.5.6. 参数传递</dt>

<dt>8.11.5.7. 控制返回JDBC数据量</dt>

<dt>8.11.5.8. 输出到不同的 Elasticsearch 中</dt>

<dt>8.11.5.9. 日期格式转换</dt>

<dt>8.11.5.10. example</dt>

<dt>8.11.6. 解决数据不对称问题</dt>

<dt>8.11.7. 修改 Mapping</dt>

<dt>8.12. 安装 Elasticsearch 2.3</dt>

<dt>8.12.1. RPM 安装</dt>

<dt>8.12.2. YUM 安装</dt>

<dt>8.12.3. 测试安装是否正常</dt>

<dt>8.12.4. Plugin 插件管理</dt>

<dt>8.12.4.1. 手工安装插件</dt>

<dt>8.12.4.2. plugin 命令</dt>

<dt>8.12.4.3. 插件测试</dt>

<dt>8.13. FAQ</dt>

<dt>8.13.1. Plugin [analysis-ik] is incompatible with Elasticsearch [2.3.5]. Was designed for version [2.3.4]</dt>

<dt>8.13.2. plugin [analysis-ik] is incompatible with version [5.6.1]; was designed for version [5.5.2]</dt>

<dt>8.13.3. mapper_parsing_exception: failed to parse [ctime]</dt>

<dt>8.13.4. 配置 JAVA_HOME</dt>

http://www.elasticsearch.org/

安装 6.x 仓库

安装 6.x 包

使用 Netkiller OSCM 一键安装 Elasticsearch 5.6.0

通常 elasticsearch-analysis-ik 的版本会比 elasticsearch 慢一个版本,所以请使用下面命令查看版本是否一致,如果不一致可以修改 plugin-descriptor.properties 配置文件,使其一致。

启动后使用 jps 命令检查进城是否工作正常

集群模式需要两个以上的节点,通常是一个 master 节点,多个 data 节点

首先在所有节点上安装 elasticsearch,然后配置各节点的配置文件,对于 5.5.1 不需要配置决定哪些节点属于 master 节点 或者 data 节点。

配置文件

查看节点状态,使用curl工具: curl 'http://localhost:9200/_nodes/process?pretty'

启动节点后回生成 cluster.name 为文件名的日志文件。

谁先启动谁讲成为master

如果master出现故障,其他节点会接管

master 节点恢复上线会提示

首先安装 nginx, 这里使用 Netkiller OSCM 一键安装脚本完成。

因为 elasticsearch 没有用户认证机制我们通常在内网访问他。如果对外提供服务需要增加用户认证。

创建 nginx 配置文件 /etc/nginx/conf.d/elasticsearch.conf

反复使用下面方法请求,最终你会发现 total_opened 会达到你的nginx 配置数量

上面的例子适用于绝大多数场景。

例 8.1. Elasticsearch master / slave

通过 limit_except 可以控制访问权限,例如删除操作。

使用 yum 安装默认为最新版本,我们常常会遇到一个问题 elasticsearch-analysis-ik 的版本晚于 Elasticsearch。如果使用 yum 安装 Elasticsearch 可能 elasticsearch-analysis-ik 插件不支持这个版本,有些版本的 elasticsearch-analysis-ik 可以修改插件配置文件中的版本号,使其与elasticsearch版本相同,可以欺骗 elasticsearch 跳过版本不一致异常。

最佳的解决方案是去 elasticsearch-analysis-ik github 找到兼容的版本,安装我们安装 elasticsearch-analysis-ik 的版本需求来指定安装 elasticsearch

最新版是 elasticsearch 5.6.1 但分词插件 elasticsearch-analysis-ik 仅能支持到 elasticsearch 版本是 5.6.0

安装 5.6.0

Elasticsearch 提供了插件管理命令 elasticsearch-plugin

安装插件

https://github.com/medcl/elasticsearch-analysis-pinyin

原文出处:Netkiller 系列 手札

本文作者:陈景峯

转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。

继续阅读