php環境下使用elasticSearch+ik分詞器進行全文搜尋

2020-07-16 10:06:09
首先需要說明的一點是,如果需要啟用ik分詞器,那麼分詞器的版本必須與es版本一致,即6.3.0的分詞器需要同樣6.3.0版本的es支援。

安裝java

win-64bit的安裝包需要去java英文官網查詢

安裝ES

6.3.0版本es下載地址:

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

安裝IK

win環境下,命令列進入bin,然後執行

elasticsearch-plugin install https://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中更改響應設定

<!--使用者可以在這裡設定遠端擴充套件字典 -->
<entry key="remote_ext_dict">http://xxx.com/getDic.php</entry>
<!--使用者可以在這裡設定遠端擴充套件停止詞字典-->
<entry key="remote_ext_stopwords">http://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環境下使用elasticSearch+ik分詞器進行全文搜尋的詳細內容,更多請關注TW511.COM其它相關文章!