mirror of
https://github.com/kvazar-network/index-php.git
synced 2025-01-22 12:54:15 +00:00
add init methods
This commit is contained in:
parent
a178130500
commit
777d98c6a0
@ -4,20 +4,22 @@ declare(strict_types=1);
|
||||
|
||||
namespace Kvazar\Index;
|
||||
|
||||
use Manticoresearch\Client;
|
||||
use Manticoresearch\Index;
|
||||
|
||||
class Manticore
|
||||
{
|
||||
private \Manticoresearch\Client $_client;
|
||||
|
||||
private $_index;
|
||||
private \Manticoresearch\Index $_index;
|
||||
|
||||
public function __construct(
|
||||
?string $name = 'kvazar',
|
||||
?array $meta = [],
|
||||
?string $host = '127.0.0.1',
|
||||
?int $port = 9308,
|
||||
?bool $drop = false
|
||||
?int $port = 9308
|
||||
)
|
||||
{
|
||||
$this->_client = new \Manticoresearch\Client(
|
||||
$this->_client = new Client(
|
||||
[
|
||||
'host' => $host,
|
||||
'port' => $port,
|
||||
@ -28,15 +30,6 @@ class Manticore
|
||||
$name
|
||||
);
|
||||
|
||||
if ($drop)
|
||||
{
|
||||
$this->_index->drop(
|
||||
true
|
||||
);
|
||||
}
|
||||
|
||||
if (!$this->_index->status())
|
||||
{
|
||||
$this->_index->create(
|
||||
[
|
||||
'block' =>
|
||||
@ -47,7 +40,7 @@ class Manticore
|
||||
[
|
||||
'type' => 'text'
|
||||
],
|
||||
'txid' =>
|
||||
'transaction' =>
|
||||
[
|
||||
'type' => 'text'
|
||||
],
|
||||
@ -59,8 +52,47 @@ class Manticore
|
||||
[
|
||||
'type' => 'text'
|
||||
]
|
||||
]
|
||||
],
|
||||
$meta,
|
||||
true
|
||||
);
|
||||
}
|
||||
|
||||
public function add(
|
||||
int $block,
|
||||
string $namespace,
|
||||
string $transaction,
|
||||
string $key,
|
||||
string $value
|
||||
): int
|
||||
{
|
||||
$crc32transaction = crc32(
|
||||
$transaction
|
||||
);
|
||||
|
||||
if (!$this->_index->getDocumentById($crc32transaction))
|
||||
{
|
||||
$this->_index->addDocument(
|
||||
[
|
||||
'block' => $block,
|
||||
'namespace' => $namespace,
|
||||
'transaction' => $transaction,
|
||||
'key' => $key,
|
||||
'value' => $value
|
||||
],
|
||||
$crc32transaction
|
||||
);
|
||||
}
|
||||
|
||||
return $crc32transaction;
|
||||
}
|
||||
|
||||
public function drop(
|
||||
?bool $silent = false
|
||||
)
|
||||
{
|
||||
return $this->_index->drop(
|
||||
$silent
|
||||
);
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user