elasticSearch 6.5中文检索分词 ik分词插件

作者: 白云飞 分类: elasticSearch,php 发布时间: 2018-12-20 22:54 阅读:

最近要搞一个应答的机器人,其实需求很简单,我们维护一个问题库,并且为了维护的方便,问题之间不人为维护关联性,而是靠搜索引擎通过联想,建立关联性。由于我们生产上采用 elk 来分析平时产生的日志,因此自然而然的,搜索引擎这块,就采用了elasticSearch。

首先,我为什么标题写了 elasticSearch 6.5 (实际上我采用的版本是 6.5.3)。因为,elasticSearch 是一个版本之间差异很大的一个系统。所以,这里我特意强调是 6.5。如果你采用的不是这个版本的,我不敢保证,我这里给出的例子,你也可以使用。

这两天,通过查看官方文档,查看 php的sdk。大致对我要使用的一些功能,有了一些理解。当然,elasticSearch 可以分布式部署,由于我暂时没看到,这里暂时不介绍这块的内容。好了,说了这么多,开始正式进入主题吧。

首先,我们就是要搭建elasticSearch 环境,我用的是 mac ,因此我可以痛过:

brew install elasticsearch

来一键进行安装。并且可以通过

brew info elasticsearch

查看一些配置文件所在的地方

Data:    /usr/local/var/lib/elasticsearch/elasticsearch_baiyunfei/
Logs:    /usr/local/var/log/elasticsearch/elasticsearch_baiyunfei.log
Plugins: /usr/local/var/elasticsearch/plugins/
Config:  /usr/local/etc/elasticsearch/

 然而在这里,我并不推荐这么搞。虽然通过这样安装方便,但是文件之间太分散,不好管理。我还是推荐,进入官网,下载 elasticsearch-6.5.3.tar.gz 然后解压到你的个人目录。

这要就ok了,你的 elasticSearch 就算基本上完成了。

由于 elasticSearch 是外国人搞的,因此,对中文没有直接提供支持。同时,中文的分词,又比英文来的复杂的多,因此,我们可以通过 ik 分词这个插件,来解决这个问题。

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

这里是 ik分词的github首页,找到 releases,并且找到与你版本号一一对应的 版本,点击下载第一个 .zip 结尾的就可以了。下载完成之后,解压到 你的 elasticSearch 安装目录的 plugins下,像下面这样:

 

此时,进入 elasticSearch 目录,启动

./bin/elasticsearch

便可以启动 elasticsearch,并可以看到加载了 ik 分词

访问 127.0.0.1:9200,看到如下画面:

{
  "name" : "node-1",
  "cluster_name" : "my-application",
  "cluster_uuid" : "u9pN1-4LQ6WTNXgVM0J_oA",
  "version" : {
    "number" : "6.5.3",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "159a78a",
    "build_date" : "2018-12-06T20:11:28.826501Z",
    "build_snapshot" : false,
    "lucene_version" : "7.5.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

代表你启动成功了。下一篇文章,我会讲解,如何通过 php客户端,完成索引的建立与文档的搜索。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!