Position actuelle: Accueil> Derniers articles> Elasticsearch combiné avec IK Word Segmenter dans un environnement PHP pour réaliser une recherche de texte intégral chinois efficace

Elasticsearch combiné avec IK Word Segmenter dans un environnement PHP pour réaliser une recherche de texte intégral chinois efficace

gitbox 2025-08-06

Introduction

Elasticsearch est un puissant moteur de recherche en texte intégral distribué qui peut stocker et interroger efficacement les données à grande échelle. Le segmenter de mots IK est spécialement conçu pour le chinois, faisant pleinement usage des caractéristiques du vocabulaire chinois pour participer avec précision, améliorant ainsi la qualité de recherche.

Installation et configuration d'Elasticsearch

Installer Elasticsearch

Vous pouvez télécharger le package d'installation du système d'exploitation correspondant à partir du site officiel d'Elasticsearch et terminer le déploiement en fonction des étapes d'installation:

 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

Configurer elasticsearch

Modifiez le fichier de configuration elasticsearch.yml et définissez le nom du cluster, le nom du nœud et l'adresse d'écoute en fonction des exigences:

 cluster.name: my_cluster

node.name: my_node

network.host: localhost

http.port: 9200

Configuration de l'environnement PHP

Pour utiliser Elasticsearch dans des projets PHP, vous devez installer le client PHP officiel:

 composer require elasticsearch/elasticsearch

Installez le plug-in IK Word Segmenter

Le segmentateur de mots IK prend en charge la segmentation des mots chinois, et la commande d'installation est la suivante:

 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

Configurer le segmentateur de mots IK

Ajoutez la configuration de l'analyseur suivant dans elasticsearch.yml :

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

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

Code PHP pour implémenter la recherche de texte intégral

L'exemple suivant montre comment utiliser le client PHP pour la recherche de texte intégral:

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

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

$params = [

    'index' => 'my_index',

    'body'  => [

        'query' => [

            'match' => [

                'content' => 'Mots clés'

            ]

        ]

    ]

];

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

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

Le code ci-dessus crée un client Elasticsearch, construit des paramètres de requête et exécute des recherches, et obtient enfin des résultats correspondants.

Résumer

Cet article présente systématiquement comment combiner Elasticsearch et IK Word Segmenter pour réaliser la fonction de recherche en texte intégral dans l'environnement PHP. Grâce à des exemples de configuration et de code raisonnables, les développeurs peuvent rapidement créer des services de recherche efficaces.