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.
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
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
Pour utiliser Elasticsearch dans des projets PHP, vous devez installer le client PHP officiel:
composer require elasticsearch/elasticsearch
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
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"
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.
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.