PHP Study Guide: How to implement full-text search function

PHPz
Release: 2023-08-26 18:08:01
Original
1447 people have browsed it

PHP Study Guide: How to implement full-text search function

PHP Study Guide: How to implement the full-text search function

The full-text search function is widely used in modern websites and applications, which allows users to search and retrieve by keywords Related content. In this article, we will discuss how to implement full-text search functionality using PHP.

1. Preparation
Before starting to write code, we need to ensure that Elasticsearch is installed on the server. Elasticsearch is an open source server-side tool for full-text search and analysis. It provides a powerful search engine that can quickly search large amounts of data.

2. Create an index
Before searching, we need to create an index first. Indexes are where documents are stored in Elasticsearch. Each document consists of one or more fields based on which we can search.

The following is a simple sample code for indexing:

require 'vendor/autoload.php';

use ElasticsearchClientBuilder;

$client = ClientBuilder::create()
            ->setHosts(['http://localhost:9200'])
            ->build();

$params = [
    'index' => 'articles',
    'body' => [
        'mappings' => [
            'properties' => [
                'title' => [
                    'type' => 'text',
                ],
                'content' => [
                    'type' => 'text',
                ]
            ]
        ]
    ]
];

$response = $client->indices()->create($params);
Copy after login

In the above code, we first import the Elasticsearch client library, and then create a client instance. Next, we define an index type containing the title and content fields and add it to the index named "articles".

3. Add documents
Now we can add some documents to the index. Each document should contain a unique ID and need to contain the value of the field to be searched.

The following is the sample code to add a document:

$params = [
    'index' => 'articles',
    'id' => 1,
    'body' => [
        'title' => 'Elasticsearch入门指南',
        'content' => 'Elasticsearch是一个强大的搜索引擎。'
    ]
];

$response = $client->index($params);
Copy after login

In the above example, we specified the index name, document ID, and field value to be added.

4. Perform full-text search
Now we can start using the full-text search function. Here is a simple search example:

$params = [
    'index' => 'articles',
    'body' => [
        'query' => [
            'match' => [
                'content' => '搜索引擎'
            ]
        ]
    ]
];

$response = $client->search($params);
Copy after login

In the code above, we specify the index name we want to search and use a match query to find documents containing the keyword "search engine".

5. Processing search results
Search results will be returned in JSON format. We can use the json_decode function in PHP to decode it into an operable array or object and then process it.

Here is a simple example of processing search results:

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

foreach ($results as $result) {
    $title = $result['_source']['title'];
    $content = $result['_source']['content'];

    echo "标题:$title<br>";
    echo "内容:$content<br><br>";
}
Copy after login

In the above code, we use a foreach loop to iterate through the search results, and then extract the title and content from each result, and Print it out.

Through the above steps, we can easily implement the full-text search function in PHP. By indexing, adding documents, performing searches, and processing search results, we provide our users with a fast and efficient search experience. I hope this article will be helpful for learning PHP to implement full-text search function.

Reference materials:

  • [Elasticsearch official document](https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html)
  • [Elasticsearch PHP client library](https://www.elastic.co/guide/en/elasticsearch/client/php-api/current/index.html)

The above is the detailed content of PHP Study Guide: How to implement full-text search function. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!