PHP环境下,如何利用Elasticsearch IK分词器实现高效全文检索?

更新于
2026-09-30 15:54:49
1阅读来源:SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计499个文字,预计阅读时间需要2分钟。

PHP环境下,如何利用Elasticsearch IK分词器实现高效全文检索?

首先需明确的一点是,若需使用ik分词器,该分词器的版本必须与es版本一致。例如,6.3.0版本的分词器需要与6.3.0版本的es兼容。安装Java win-64bit的安装包,需前往Java官方中文网站查找。

首先需要说明的一点是,如果需要启用ik分词器,那么分词器的版本必须与es版本一致,即6.3.0的分词器需要同样6.3.0版本的es支持。

安装java

win-64bit的安装包需要去java英文官网查找

安装ES

6.3.0版本es下载地址:

www.elastic.co/downloads/past-releases/elasticsearch-6-3-0

安装IK

win环境下,命令行进入bin,然后执行

elasticsearch-plugin install github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.3.0/elasticsearch-analysis-ik-6.3.0.zip

然后重启es。另,es没有热重启功能,守护启动后如果想重启,只能先杀掉进程再启动es

安装php客户端

composer require elasticsearch/elasticsearch

配置ik远程字典

在IKAnalyzer.cfg.xml中更改响应配置

PHP环境下,如何利用Elasticsearch IK分词器实现高效全文检索?

<!--用户可以在这里配置远程扩展字典 --> <entry key="remote_ext_dict">xxx.com/getDic.php</entry> <!--用户可以在这里配置远程扩展停止词字典--> <entry key="remote_ext_stopwords">xxx.com/getDicStop.php</entry>

如果重启es时出现类似“java.security.AccessControlException: access denied (java.net.SocketPermission 127.0.0.1:8080 connect,resolve)”的报错,解决方法为找到%JAVA_HOME%/jre6/lib/security/java.policy 文件,添加permission java.net.SocketPermission "127.0.0.1:8080","connect"; 然后重启es

关于ik远程字典

扩展字典中的词会被筛选出来,扩展停止词中的词会被过滤掉;

即如果你希望某几个字被视作一个词,比如各类流行词汇,则将其加入扩展字典;

如果你希望过滤掉某几个词,则将其加入扩展停止词中。

更多PHP相关知识,请访问PHP教程!

以上就是php环境下使用elasticSearch+ik分词器进行全文搜索的详细内容,更多请关注自由互联其它相关文章!

本文共计499个文字,预计阅读时间需要2分钟。

PHP环境下,如何利用Elasticsearch IK分词器实现高效全文检索?

首先需明确的一点是,若需使用ik分词器,该分词器的版本必须与es版本一致。例如,6.3.0版本的分词器需要与6.3.0版本的es兼容。安装Java win-64bit的安装包,需前往Java官方中文网站查找。

首先需要说明的一点是,如果需要启用ik分词器,那么分词器的版本必须与es版本一致,即6.3.0的分词器需要同样6.3.0版本的es支持。

安装java

win-64bit的安装包需要去java英文官网查找

安装ES

6.3.0版本es下载地址:

www.elastic.co/downloads/past-releases/elasticsearch-6-3-0

安装IK

win环境下,命令行进入bin,然后执行

elasticsearch-plugin install github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.3.0/elasticsearch-analysis-ik-6.3.0.zip

然后重启es。另,es没有热重启功能,守护启动后如果想重启,只能先杀掉进程再启动es

安装php客户端

composer require elasticsearch/elasticsearch

配置ik远程字典

在IKAnalyzer.cfg.xml中更改响应配置

PHP环境下,如何利用Elasticsearch IK分词器实现高效全文检索?

<!--用户可以在这里配置远程扩展字典 --> <entry key="remote_ext_dict">xxx.com/getDic.php</entry> <!--用户可以在这里配置远程扩展停止词字典--> <entry key="remote_ext_stopwords">xxx.com/getDicStop.php</entry>

如果重启es时出现类似“java.security.AccessControlException: access denied (java.net.SocketPermission 127.0.0.1:8080 connect,resolve)”的报错,解决方法为找到%JAVA_HOME%/jre6/lib/security/java.policy 文件,添加permission java.net.SocketPermission "127.0.0.1:8080","connect"; 然后重启es

关于ik远程字典

扩展字典中的词会被筛选出来,扩展停止词中的词会被过滤掉;

即如果你希望某几个字被视作一个词,比如各类流行词汇,则将其加入扩展字典;

如果你希望过滤掉某几个词,则将其加入扩展停止词中。

更多PHP相关知识,请访问PHP教程!

以上就是php环境下使用elasticSearch+ik分词器进行全文搜索的详细内容,更多请关注自由互联其它相关文章!