schranz-search / seal-read-write-adapter
用于支持 schranz-search/seal 包读取和写入操作分离的适配器。
资助包维护!
alexander-schranz
paypal.me/L91
Requires
- php: ^8.1
- psr/container: ^1.0 || ^2.0
- schranz-search/seal: ^0.4
Requires (Dev)
- php-cs-fixer/shim: ^3.51
- phpstan/extension-installer: ^1.2
- phpstan/phpstan: ^1.10
- phpstan/phpstan-phpunit: ^1.3
- phpunit/phpunit: ^10.3
- rector/rector: ^1.0
README
Schranz Search SEAL
读写适配器
ReadWriteAdapter
允许使用一个适配器实例进行读取,另一个实例进行写入。如果您想在不停机的情况下重新索引某些内容,这非常有用。
注意:这是
schranz-search/schranz-search
项目的一部分,请在 主仓库 中创建问题。
注意:该项目处于高度开发中,任何反馈都将非常受重视。
安装
使用 composer 安装此包
composer require schranz-search/seal schranz-search/seal-read-write-adapter
用法
要使用适配器,需要创建一个 ReadWriteAdapter
实例,该实例接收一个 $readAdapter
和一个 $writeAdapter
,它们是 AdapterInterface
的实例。
以下代码演示了如何使用此适配器创建一个引擎:
<?php use Schranz\Search\SEAL\Adapter\Elasticsearch\ElasticsearchAdapter; use Schranz\Search\SEAL\Adapter\ReadWrite\ReadWriteAdapter; use Schranz\Search\SEAL\Engine; $readAdapter = new ElasticsearchAdapter(/* .. */); // can be any adapter $writeAdapter = new ElasticsearchAdapter(/* .. */); // can be any adapter $engine = new Engine( new ReadWriteAdapter( $readAdapter, $writeAdapter ), $schema, );
通过您喜欢的框架的 DSN
multi://readAdapter?adapters[]=writeAdapter read-write://readAdapter?write=multiAdapter
注意:当使用此适配器时,应避免读取文档并根据读取的文档进行部分更新,因为读取的文档可能已经过时。因此,始终完全更新文档,而不要基于读取文档。有关向读取和写入适配器写入的信息,请查看
MultiAdapter
。