hasanmertermis/milvus-php-client

Milvus 2 Grpc Php 客户端

v1.0.8 2023-05-30 11:35 UTC

This package is auto-updated.

Last update: 2024-09-13 14:57:46 UTC


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);