ElasticSearch function of PHP function

WBOY
Release: 2023-05-19 10:44:01
Original
844 people have browsed it

With the advent of the big data era, data storage and retrieval are becoming more and more important. As a large-scale distributed search and analysis engine based on the Lucene search engine, ElasticSearch has undoubtedly become one of the most popular search engines today. In PHP applications, we often need to use ElasticSearch to retrieve data. This article will introduce the ElasticSearch functions of some commonly used PHP functions.

  1. Elasticsearch class

The first is the Elasticsearch class, which is the core class for the PHP client to interact with the Elasticsearch server. Commonly used initialization methods are as follows:

$hosts = ['http://localhost:9200'];
$client = ElasticsearchClientBuilder::create()->setHosts($hosts)->build();
Copy after login

Among them, $hosts is the Elasticsearch server address, which can be an array of one or more addresses. The getClient() method can obtain the $client object to facilitate subsequent operations.

  1. Create index

In ElasticSearch, we need to first create an index to store data. The following is a simple code example for creating an index:

$params = [
    'index' => 'my_index',
    'body' => [
        'settings' => [
            'number_of_shards' => 1,
            'number_of_replicas' => 0
        ]
    ]
];
$response = $client->indices()->create($params);
Copy after login

In the above code, the $params parameter contains the index name and index settings to be created. In the body, we can set the number of shards and copies of the index, etc. Finally, execute the create() method to complete the index creation operation.

  1. Add documents

Adding documents is one of the main ways to add data to the index. The following is an example of adding a document:

$params = [
    'index' => 'my_index',
    'type' => 'my_type',
    'id' => '1',
    'body' => [
        'title' => 'My first document',
        'content' => 'This is the content of my first document'
    ]
];
$response = $client->index($params);
Copy after login

In the above code, the $params parameter contains the content and method of adding the document to be added. Among them, index represents the index to be added, type represents the document type to be added, id represents the ID number of the document to be added, and body represents the content of the document to be added. Finally, execute the index() method to complete the operation of adding documents.

  1. Update document

If we need to modify the content of an existing document, we can use the update() method. The following is an example of updating a document:

$params = [
    'index' => 'my_index',
    'type' => 'my_type',
    'id' => '1',
    'body' => [
        'doc' => [
            'title' => 'Updated document title',
            'content' => 'This is the updated content of my first document'
        ]
    ]
];
$response = $client->update($params);
Copy after login

In the above code, the $params parameter contains the content of the document to be updated and the update method. Among them, doc represents the document content to be updated. Finally, execute the update() method to complete the document update operation.

  1. Delete document

If we need to delete an existing document, we can use the delete() method. The following is an example of deleting a document:

$params = [
    'index' => 'my_index',
    'type' => 'my_type',
    'id' => '1'
];
$response = $client->delete($params);
Copy after login

In the above code, the $params parameter contains the content of the document to be deleted and the deletion method. Finally, execute the delete() method to complete the deletion of the document.

  1. Search documents

Search is one of the most common functions of ElasticSearch. The following is a simple search example:

$params = [
    'index' => 'my_index',
    'type' => 'my_type',
    'body' => [
        'query' => [
            'match' => [
                'title' => 'document'
            ]
        ]
    ]
];
$response = $client->search($params);
Copy after login

In the above code, the $params parameter contains the search content and search method. Among them, title represents the field to be searched, and document represents the content to be searched. Finally, execute the search() method to complete the search for documents.

  1. Aggregation

In addition to search, ElasticSearch also supports various aggregation operations. The following is a simple aggregation example:

$params = [
    'index' => 'my_index',
    'type' => 'my_type',
    'body' => [
        'aggs' => [
            'my_agg' => [
                'terms' => [
                    'field' => 'title'
                ]
            ]
        ]
    ]
];
$response = $client->search($params);
Copy after login

In the above code, the $params parameter contains the content to be aggregated and the aggregation method. Among them, my_agg is the name of the aggregation, and title represents the field to be aggregated. Finally, execute the search() method to complete the aggregation operation.

Summary

The above is an introduction to the ElasticSearch function of commonly used PHP functions. Of course, there are many other operations, such as batch addition, batch deletion, paging search, complex aggregation, etc. In actual development, we need to choose different operating methods based on specific needs. ElasticSearch has very powerful capabilities in search and aggregation, and is also very good at processing big data. I believe it will help many PHP developers.

The above is the detailed content of ElasticSearch function of PHP function. For more information, please follow other related articles on the PHP Chinese website!

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