Home >Backend Development >PHP Tutorial >Use elasticSearch+ik word segmenter for full-text search in PHP environment

Use elasticSearch+ik word segmenter for full-text search in PHP environment

藏色散人
藏色散人forward
2020-01-06 16:49:195414browse

The first thing to note is that if you need to enable the ik word segmenter, the version of the word segmenter must be consistent with the es version, that is, the 6.3.0 word segmenter needs the same 6.3.0 version of es support.

Install java

Win-64bit installation package needs to be found on the java English official website

Install elasticSearch (ES)

6.3.0 version es download address:

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

Course Recommendation →: "Elasticsearch Full-text Search Practical Combat" (Practical Video)

From the Course "Ten Million Level Data Concurrency" Solution (theory and practice)》

Install IK

In the win environment, enter the bin command line and then execute

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

Then restart es. In addition, es does not have a hot restart function. If you want to restart after the daemon is started, you can only kill the process first and then start es

Install the php client

composer require elasticsearch/elasticsearch

Configure ik remote dictionary

Change the response configuration in IKAnalyzer.cfg.xml

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

If something like "java.security.AccessControlException: access denied (java.net. SocketPermission 127.0.0.1:8080 connect,resolve)" error, the solution is to find the %JAVA_HOME%/jre6/lib/security/java.policy file and add permission java.net.SocketPermission "127.0.0.1:8080","connect "; Then restart es

About ik remote dictionary

The words in the extended dictionary will be filtered out, and the words in the extended stop words will be filtered out;

That is, if you want certain words to be treated as one word, such as various popular words, add them to the extended dictionary;

If you want to filter out certain words, add them Added to extended stop words.

For more PHP related knowledge, please visit PHP Tutorial!

The above is the detailed content of Use elasticSearch+ik word segmenter for full-text search in PHP environment. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:csdn.net. If there is any infringement, please contact admin@php.cn delete