不积跬步,无以至千里;不积小流,无以成江海
前言
最近通过学习Elasticsearch搜索引擎,记录一些心得。
一、安装和配置
es搜索引擎在Windows环境下单机模式和集群模式的安装和配置。在单机模式下直接解压,启动bin目录下的bat文件即可。在集群模式下,需要配置每个节点的名称、通信端口以及跨域设置等。注意:discovery.seed_hosts为es查找master节点的模块,端口为内部通信端口。
二、索引操作
创建es客户端,新建、查询、删除索引。注意:在安装和使用过程中,服务端和客户端版本号必须一致,否则会造成不兼容问题,因为不同版本之间的方法实现会有很大的差异。在es中索引对应的是数据库,类型对应表,文档对应行,字段对应列。当索引类型为text时,才能实现分词功能,若为keyword 类型,则不能分词,只能精准搜索。特别的,对于地理位置坐标这种类型的索引,需要定义为geo_point,否则会映射为float,这样就会导致索引类型不匹配报错。
三、索引中的文档操作
查询、插入、编辑、删除文档数据。注意:插入数据时,必须将数据转换成json格式,在es中数据传输都是以标准的json格式进行的。
四、查询
索引中的文档数据全量查询、条件查询、分页查询、查询排序、过滤字段、组合查询、范围查询、模糊查询、聚合查询以及分组查询。注意:模糊查询fuzzyQuery中设置的fuzziness我理解为查询偏差的距离,换言之即为匹配多少个字符即查询出结果。
五、分词器
Windows环境下IK中文分词器插件添加。下载解压后将整个文件夹放入对应es的plugins目录下。注意:分词插件的config目录下IKAnalyzer.cfg.xml中可以配置自己的扩展字典。例如,不想xx中学分词为xx和中学,则需要在config目录下新建custom.dic文件,同时写入xx中学,然后再在IKAnalyzer.cfg.xml中指定新建的custom.dic即可。
六、可视化
Kibana可视化分析客户端安装并使用。注意:下载对应的es服务端版本号,解压后在config目录下的kibana.yml中配置elasticsearch.url为对应es的ip地址。
七、数据同步
canal插件安装并同步MySQL数据。由于canal的实现原理为模拟MySQL的主从同步,所以在使用前需要先开启MySQL的binlog功能。然后再在canal的配置文件中配置需要数据同步MySQL的ip、端口号、用户名和密码。注意:同步数据前一定要先检查对应的索引是否已经建立成功。