面试题答案
一键面试索引创建失败
- 可能原因:
- 索引名称不符合命名规则,例如包含特殊字符。
- 集群状态异常,如节点未全部就绪。
- 索引设置参数不合理,例如副本数设置超过节点数。
- 处理流程:
- 检查索引名称是否符合规则,可参考官方文档命名规范修改。
- 通过
/_cluster/health
API查看集群状态,等待节点全部就绪。 - 调整索引设置参数,合理设置副本数等参数后重新创建。
数据写入失败
- 可能原因:
- 网络问题,如节点间网络连接中断。
- 索引被锁定,可能由于权限问题或其他异常操作。
- 磁盘空间不足,无法写入数据。
- 处理流程:
- 检查网络连接,确保节点间网络正常。可以通过ping命令、telnet等工具排查。
- 检查索引状态,若被锁定,通过
/_all/_settings
API解锁(需有相应权限)。 - 检查磁盘空间,清理不必要文件或增加磁盘空间后重试写入。
搜索结果不准确或无结果
- 可能原因:
- 映射(mapping)定义错误,导致数据类型不匹配。
- 查询语句编写错误,语法有误或逻辑不准确。
- 索引数据未完全刷新,新数据未被搜索到。
- 处理流程:
- 检查映射定义,使用
/_mapping
API查看,必要时修正映射数据类型。 - 仔细检查查询语句,利用
_validate/query
API验证语法。 - 执行
/_refresh
API强制刷新索引,确保新数据可被搜索到。
- 检查映射定义,使用
节点失联
- 可能原因:
- 节点硬件故障,如内存不足、CPU使用率过高导致崩溃。
- 网络分区,节点与集群其他部分网络隔离。
- 配置错误,如节点名称冲突等。
- 处理流程:
- 检查节点硬件状态,查看系统日志,修复硬件问题(如增加内存、排查CPU高负载原因)。
- 排查网络分区问题,修复网络连接,确保节点能正常通信。
- 检查节点配置,修改冲突的配置项(如修改节点名称),重启节点。