欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

es操作php

傅智翔1年前8瀏覽0評論

ES,全稱Elasticsearch,是一種基于Lucene的分布式、開源的搜索引擎。它提供了簡單易用的API,可以在非常短的時間內(nèi)完成復(fù)雜的搜索操作。在PHP開發(fā)中,我們經(jīng)常需要使用ES來實現(xiàn)數(shù)據(jù)存儲和搜索,本文將介紹如何在PHP中操作ES。

首先需要安裝Elasticsearch客戶端,可以通過composer來安裝。例如:

composer require elasticsearch/elasticsearch

接下來,我們需要創(chuàng)建一個Elasticsearch客戶端對象,連接ES服務(wù)器:

require 'vendor/autoload.php';
use Elasticsearch\ClientBuilder;
$client = ClientBuilder::create()->setHosts(['localhost:9200'])->build();

以上代碼創(chuàng)建了一個連接到本地ES服務(wù)器的客戶端對象。

下面是如何創(chuàng)建一個索引(index)和類型(type):

$params = [
'index' =>'my_index',
'body' =>[
'settings' =>[
'number_of_shards' =>3,
'number_of_replicas' =>2
]
]
];
$response = $client->indices()->create($params);

上面的代碼創(chuàng)建一個名為"my_index"的索引,并且定義了它的一些設(shè)置,例如分片數(shù)和副本數(shù)。

接下來,讓我們看看如何向索引中添加文檔:

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

上述代碼向剛創(chuàng)建的"my_index"索引中添加了一個名為"my_type"的類型。它的id為1,包含標(biāo)題和內(nèi)容兩個字段。

下面是如何通過ID獲取一個文檔:

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

上面的代碼通過ID獲取了在"my_index"索引中的文檔,類型為"my_type",id為1。

最后,我們來看看如何進(jìn)行搜索和過濾操作:

$params = [
'index' =>'my_index',
'type' =>'my_type',
'body' =>[
'query' =>[
'bool' =>[
'must' =>[
'match' =>['title' =>'blog']
],
'filter' =>[
'range' =>[
'date_published' =>['gte' =>'2019-01-01', 'lte' =>'2020-01-01']
]
]
]
]
]
];
$response = $client->search($params);

上述代碼在"my_index"索引中的類型"my_type"中搜索標(biāo)題中包含"blog"的文檔,并且過濾日期在2019年1月1日至2020年1月1日之間的文檔。

以上介紹了ES在PHP中常見的一些操作,包括創(chuàng)建索引、添加文檔、獲取文檔和搜索過濾。開發(fā)人員可以根據(jù)實際需求自行調(diào)用ES API完成企業(yè)級搜索開發(fā)。