Home > Article > Backend Development > Search result display and customization technology based on Elasticsearch in PHP
Search result display and customization technology based on Elasticsearch in PHP
Introduction:
In the modern Internet era, search functions are an integral part of websites and applications . How to quickly and accurately display the results that users want through search engines has always been a challenge faced by developers. Elasticsearch is an open source distributed full-text search engine that is widely popular among developers for its high performance, powerful search and analysis capabilities. This article will introduce the Elasticsearch-based search result display and customization technology in PHP, and provide specific code examples.
1. Installation and configuration Elasticsearch
First, we need to install and start Elasticsearch. You can download the latest stable version from the official website of Elasticsearch (https://www.elastic.co/), and install and configure it according to the official documentation.
2. PHP Elasticsearch client library
In PHP, we can use the officially provided Elasticsearch client library to interact with Elasticsearch. You can use Composer to install:
composer require elasticsearch/elasticsearch
After the installation is complete, you can introduce the Elasticsearch client library into the project:
require 'vendor/autoload.php'; use ElasticsearchClientBuilder;
3. Create indexes and documents
Before starting the search , we need to create an index and add some documents to Elasticsearch. The following is an example PHP code:
$client = ClientBuilder::create()->build(); $params = [ 'index' => 'my_index', 'body' => [ 'settings' => [ 'number_of_shards' => 1, 'number_of_replicas' => 0 ], 'mappings' => [ 'properties' => [ 'title' => [ 'type' => 'text' ], 'content' => [ 'type' => 'text' ] ] ] ] ]; $response = $client->indices()->create($params); $params = [ 'index' => 'my_index', 'body' => [ [ 'index' => [ '_index' => 'my_index', '_id' => '1' ] ], [ 'title' => 'PHP Elasticsearch 搜索实战', 'content' => '在 PHP 中使用 Elasticsearch 进行高效的搜索技术实战。' ], [ 'index' => [ '_index' => 'my_index', '_id' => '2' ] ], [ 'title' => 'Elasticsearch 基础教程', 'content' => '学习使用 Elasticsearch 基础教程,从入门到精通。' ], ] ]; $response = $client->bulk($params);
4. Search and display
Next, we will show how to use Elasticsearch in PHP to search and display the results to the user. Here is an example PHP code:
$client = ClientBuilder::create()->build(); $params = [ 'index' => 'my_index', 'body' => [ 'query' => [ 'match' => [ 'title' => 'Elasticsearch' ] ] ] ]; $response = $client->search($params); foreach ($response['hits']['hits'] as $hit) { echo $hit['_source']['title'] . '<br>'; echo $hit['_source']['content'] . '<br><br>'; }
The above code will search for documents indexed to my_index
that contain Elasticsearch
in the title, and print the results.
5. Customization of search results
In addition to simple search and display, we can also customize search results. The following is a sample code for customized processing of search results:
$client = ClientBuilder::create()->build(); $params = [ 'index' => 'my_index', 'body' => [ 'query' => [ 'match' => [ 'title' => 'Elasticsearch' ] ], 'highlight' => [ 'pre_tags' => '<strong>', 'post_tags' => '</strong>', 'fields' => [ 'title' => new stdClass(), 'content' => new stdClass() ] ] ] ]; $response = $client->search($params); foreach ($response['hits']['hits'] as $hit) { $title = isset($hit['highlight']['title']) ? implode(' ', $hit['highlight']['title']) : $hit['_source']['title']; $content = isset($hit['highlight']['content']) ? implode(' ', $hit['highlight']['content']) : $hit['_source']['content']; echo $title . '<br>'; echo $content . '<br><br>'; }
The above code will introduce the highlighting function and use 8e99a69fbe029cd4e2b854e244eab143
tags for the matching keywords in the search results. Make a mark.
Conclusion:
By using Elasticsearch and the PHP client library, we can quickly implement search functions in PHP and customize search results. I hope the content of this article will help you use Elasticsearch in PHP to display and customize search results.
The above is the detailed content of Search result display and customization technology based on Elasticsearch in PHP. For more information, please follow other related articles on the PHP Chinese website!