現在の位置: ホーム> 最新記事一覧> Elasticsearchは、PHP環境でIKワードセグメントターと組み合わせて、効率的な中国の全文検索を実現します

Elasticsearchは、PHP環境でIKワードセグメントターと組み合わせて、効率的な中国の全文検索を実現します

gitbox 2025-08-06

導入

ElasticSearchは、大規模なデータを効率的に保存および照会できる強力な分散フルテキスト検索エンジンです。 IKワードセグメルターは中国語向けに特別に設計されており、中国語の語彙の特性を完全に使用して正確に分詞的な単語を使用して、検索品質を向上させます。

ElasticSearchのインストールと構成

ElasticSearchをインストールします

ElasticSearchの公式Webサイトから対応するオペレーティングシステムのインストールパッケージをダウンロードして、インストール手順に従って展開を完了できます。

 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.2-linux-x86_64.tar.gz

tar -zxvf elasticsearch-7.10.2-linux-x86_64.tar.gz

cd elasticsearch-7.10.2/bin

./elasticsearch

ElasticSearchを構成します

構成ファイルElasticSearch.ymlを編集し、要件に応じてクラスター名、ノード名、およびリスニングアドレスを設定します。

 cluster.name: my_cluster

node.name: my_node

network.host: localhost

http.port: 9200

PHP環境構成

PHPプロジェクトでElasticSearchを使用するには、公式のPHPクライアントをインストールする必要があります。

 composer require elasticsearch/elasticsearch

IK Word Smecterプラグインをインストールします

IKワードセグメルターは、中国語の単語セグメンテーションのサポートを提供し、インストールコマンドは次のとおりです。

 cd elasticsearch-7.10.2/

./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.10.2/elasticsearch-analysis-ik-7.10.2.zip

ik単語セグメントターを構成します

Elasticsearch.ymlに次のアナライザー構成を追加します。

 index.analysis.analyzer.default.type: "ik_max_word"

index.analysis.analyzer.default.use_smart: "false"

全文検索を実装するPHPコード

次の例は、全文検索にPHPクライアントを使用する方法を示しています。

 $hosts = ['http://localhost:9200'];

$client = Elasticsearch\ClientBuilder::create()->setHosts($hosts)->build();

$params = [

    'index' => 'my_index',

    'body'  => [

        'query' => [

            'match' => [

                'content' => 'キーワード'

            ]

        ]

    ]

];

$response = $client->search($params);

$results = $response['hits']['hits'];

上記のコードは、ElasticSearchクライアントを作成し、クエリパラメーターを構築し、検索を実行し、最終的に一致する結果を取得します。

要約します

この記事では、ElasticsearchとIK Word Segmenterを組み合わせて、PHP環境のフルテキスト検索機能を実現する方法を体系的に紹介します。妥当な構成とコードの例を通じて、開発者は効率的な検索サービスを迅速に構築できます。