ElasticSearchは、大規模なデータを効率的に保存および照会できる強力な分散フルテキスト検索エンジンです。 IKワードセグメルターは中国語向けに特別に設計されており、中国語の語彙の特性を完全に使用して正確に分詞的な単語を使用して、検索品質を向上させます。
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.ymlを編集し、要件に応じてクラスター名、ノード名、およびリスニングアドレスを設定します。
cluster.name: my_cluster
node.name: my_node
network.host: localhost
http.port: 9200
PHPプロジェクトでElasticSearchを使用するには、公式のPHPクライアントをインストールする必要があります。
composer require elasticsearch/elasticsearch
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
Elasticsearch.ymlに次のアナライザー構成を追加します。
index.analysis.analyzer.default.type: "ik_max_word"
index.analysis.analyzer.default.use_smart: "false"
次の例は、全文検索に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環境のフルテキスト検索機能を実現する方法を体系的に紹介します。妥当な構成とコードの例を通じて、開発者は効率的な検索サービスを迅速に構築できます。