schranz-search/seal-read-write-adapter

用于支持 schranz-search/seal 包读取和写入操作分离的适配器。

0.4.0 2024-03-18 21:03 UTC

This package is auto-updated.

Last update: 2024-09-18 16:13:23 UTC


README

Schranz Search Logo with a Seal on it with a magnifying glass

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

作者