ホームページ  >  記事  >  バックエンド開発  >  PHP 環境での全文検索に elasticSearch+ik 単語セグメンターを使用する

PHP 環境での全文検索に elasticSearch+ik 単語セグメンターを使用する

藏色散人
藏色散人転載
2020-01-06 16:49:195301ブラウズ

最初に注意すべきことは、ik ワード セグメンタを有効にする必要がある場合、ワード セグメンタのバージョンが es バージョンと一致している必要があることです。つまり、6.3.0 ワード セグメンタには同じ 6.3.0 バージョンが必要です。エスサポートの。

java をインストールします

Win-64 ビット インストール パッケージは、Java 英語公式 Web サイトで見つける必要があります

elasticSearch (ES) をインストールします

6.3.0 バージョンのダウンロード アドレス:

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

コースのおすすめ→: 「Elasticsearch 全文検索実戦」 (実践ビデオ)

コースより 「1,000 万レベルのデータ同時実行」ソリューション (理論と実践)》

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>

「java.security.AccessControlException:」のような場合:アクセスが拒否されました (java.net.SocketPermission 127.0.0.1:8080 connect,resolve)」エラーが発生した場合の解決策は、%JAVA_HOME%/jre6/lib/security/java.policy ファイルを見つけて、権限 java.net.SocketPermission "127.0" を追加することです。 .0.1:8080","connect "; その後、es を再起動します。

ik リモート辞書について

拡張辞書内の単語はフィルターで除外され、拡張辞書内の単語は除外されます。拡張ストップ ワードはフィルターで除外されます。

つまり、さまざまな人気の単語など、特定の単語を 1 つの単語として扱いたい場合は、それらを拡張辞書に追加します。

特定の単語をフィルターで除外したい場合は、拡張ストップ ワードに追加します。

PHP 関連の知識の詳細については、

PHP チュートリアル をご覧ください。

以上がPHP 環境での全文検索に elasticSearch+ik 単語セグメンターを使用するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。