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;
|
namespace Kvazar\Index;
|
||||||
|
|
||||||
|
use Manticoresearch\Client;
|
||||||
|
use Manticoresearch\Index;
|
||||||
|
|
||||||
class Manticore
|
class Manticore
|
||||||
{
|
{
|
||||||
private \Manticoresearch\Client $_client;
|
private \Manticoresearch\Client $_client;
|
||||||
|
private \Manticoresearch\Index $_index;
|
||||||
private $_index;
|
|
||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
?string $name = 'kvazar',
|
?string $name = 'kvazar',
|
||||||
|
?array $meta = [],
|
||||||
?string $host = '127.0.0.1',
|
?string $host = '127.0.0.1',
|
||||||
?int $port = 9308,
|
?int $port = 9308
|
||||||
?bool $drop = false
|
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
$this->_client = new \Manticoresearch\Client(
|
$this->_client = new Client(
|
||||||
[
|
[
|
||||||
'host' => $host,
|
'host' => $host,
|
||||||
'port' => $port,
|
'port' => $port,
|
||||||
@ -28,15 +30,6 @@ class Manticore
|
|||||||
$name
|
$name
|
||||||
);
|
);
|
||||||
|
|
||||||
if ($drop)
|
|
||||||
{
|
|
||||||
$this->_index->drop(
|
|
||||||
true
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!$this->_index->status())
|
|
||||||
{
|
|
||||||
$this->_index->create(
|
$this->_index->create(
|
||||||
[
|
[
|
||||||
'block' =>
|
'block' =>
|
||||||
@ -47,7 +40,7 @@ class Manticore
|
|||||||
[
|
[
|
||||||
'type' => 'text'
|
'type' => 'text'
|
||||||
],
|
],
|
||||||
'txid' =>
|
'transaction' =>
|
||||||
[
|
[
|
||||||
'type' => 'text'
|
'type' => 'text'
|
||||||
],
|
],
|
||||||
@ -59,8 +52,47 @@ class Manticore
|
|||||||
[
|
[
|
||||||
'type' => 'text'
|
'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