hasanmertermis / milvus-php-client
Milvus 2 Grpc Php 客户端
v1.0.8
2023-05-30 11:35 UTC
Requires
- php: >=7.4
- ext-grpc: *
- google/protobuf: ^v3.3.0
- grpc/grpc: ^v1.3.0
README
Milvus 2.2 gRPC Php 客户端。
文档
兼容性
安装
在终端运行 composer composer require hasanmertermis/milvus-php-client
或在 composer.json 中添加 hasanmertermis/milvus-php-client
示例
客户端
use Hasanmertermis\MilvusPhpClient\Domain\Milvus; $client = new Milvus();
连接
connection 方法设置连接参数。如果未设置参数,则默认主机为 localhost,端口为 19530。但如果设置了参数,主机名和端口将设置为输入的值。
use Hasanmertermis\MilvusPhpClient\Domain\Milvus; //Default use $client = new Milvus(); $client->connection("example.com", 19530);
getConnectionInfo() 方法获取连接参数和 isConnected 信息。
响应
[ 'host' => "localhost", 'port' => 19530, 'isConnected' => false ];
CRUD 操作
插入
<?php use Hasanmertermis\MilvusPhpClient\Domain\Helpers; use Hasanmertermis\MilvusPhpClient\Domain\Milvus; use Hasanmertermis\MilvusPhpClient\Domain\Schema\Field; use Milvus\Proto\Schema\DataType; require_once __DIR__ . '/../../vendor/autoload.php'; $client = new Milvus(); $client->connection('localhost', 19530); $data = [ (new Field())->setFieldName('encoding') ->setFieldData([[0.11240274459123611, 0.7787224650382996, 0.80665522813792]]) ->setFieldType(DataType::FloatVector), (new Field())->setFieldName('id') ->setIsPrimaryField(true) ->setFieldData(33331) ->setFieldType(DataType::Int64), (new Field())->setFieldName('a') ->setFieldData(12312) ->setFieldType(DataType::Int64) ]; $ids = $client->insert($data, 'deneme2'); print_r($ids);
删除
<?php use Hasanmertermis\MilvusPhpClient\Domain\Milvus; require_once __DIR__ . '/../../vendor/autoload.php'; $client = new Milvus(); $deleteIds = '0196caa8-f6d3-497a-83ee-2fe41dbd52ab'; $deletedIDs = $client->delete('example_collection', $deleteIds); print_r($deletedIDs); /** * Response * Array * ( * [0] => 440741353828219116 * ) */
更新(插入后删除)
<?php use Hasanmertermis\MilvusPhpClient\Domain\Helpers; use Hasanmertermis\MilvusPhpClient\Domain\Milvus; use Hasanmertermis\MilvusPhpClient\Domain\Schema\Field; use Milvus\Proto\Schema\DataType; require_once __DIR__ . '/../../vendor/autoload.php'; $client = new Milvus(); $id = '41822b49-2272-46cd-8d49-a959faf819d8'; $client->delete('example_collection', $id, 'id'); $newData = [ (new Field())->setFieldName('col') ->setFieldData([[0.44440274459123611,0.7787224650382996,0.80665522813792]]) ->setFieldType(DataType::FloatVector), (new Field())->setFieldName('id') ->setIsPrimaryField(true) ->setFieldData($id) ->setFieldType(DataType::VarChar) ]; $client->insert($newData, 'example_collection');
搜索
<?php use Hasanmertermis\MilvusPhpClient\Domain\Milvus; use Hasanmertermis\MilvusPhpClient\Domain\Schema\Field; require_once __DIR__ . '/../../vendor/autoload.php'; $client = new Milvus(); $data = (new Field()) ->setFieldData([0.11240274459123611,0.7787224650382996,0.80665522813792]) ->setMetricType('L2') ->setFieldName('field_name'); $response = $client->search($data, 'example_collection', 10, 1000); print_r($response);