schranz-search/symfony-bundle

通过Bundle将schranz-search搜索抽象集成到Symfony框架中。

安装次数: 6 173

依赖者: 0

建议者: 0

安全: 0

星标: 8

关注者: 3

分支: 1

类型:symfony-bundle

0.4.0 2024-03-18 21:03 UTC

This package is auto-updated.

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


README

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

施兰兹搜索SEAL
Symfony集成



Schranz Search — 搜索引擎抽象层(SEAL)的Symfony集成。

注意:这是schranz-search/schranz-search项目的一部分,在主仓库中创建问题。

注意:该项目正在积极开发中,任何反馈都将受到高度赞赏。

安装

使用composer安装包

composer require schranz-search/symfony-bundle

同时安装以下列表中的一个适配器。

适配器列表

以下适配器可用

额外的包装适配器

如果你正在创建自己的适配器?在你的Github仓库中添加seal-php-adapter话题。

配置

以下代码显示了如何配置该包

# config/packages/schranz_search.yaml

schranz_search:
    schemas:
        app:
            dir: '%kernel.project_dir%/config/schemas'
            # engine: 'default'
    engines:
        default:
            adapter: '%env(ENGINE_URL)%'

更复杂的配置可以在这里找到

# config/packages/schranz_search.yaml

schranz_search:
    schemas:
        app:
            dir: '%kernel.project_dir%/config/schemas/app'
        other:
            dir: '%kernel.project_dir%/config/schemas/other'
            engine: algolia
    engines:
        algolia:
            adapter: 'algolia://%env(ALGOLIA_APPLICATION_ID)%:%env(ALGOLIA_ADMIN_API_KEY)%'
        elasticsearch:
            adapter: 'elasticsearch://127.0.0.1:9200'
        meilisearch:
            adapter: 'meilisearch://127.0.0.1:7700'
        memory:
            adapter: 'memory://'
        opensearch:
            adapter: 'opensearch://127.0.0.1:9200'
        redisearch:
            adapter: 'redis://supersecure@127.0.0.1:6379'
        solr:
            adapter: 'solr://127.0.0.1:8983'
        typesense:
            adapter: 'typesense://S3CR3T@127.0.0.1:8108'

        # ...
        multi:
            adapter: 'multi://elasticsearch?adapters[]=opensearch'
        read-write:
            adapter: 'read-write://elasticsearch?write=multi'
    index_name_prefix: ''

用法

默认引擎作为Engine可用

class Some {
    public function __construct(
        private readonly \Schranz\Search\SEAL\EngineInterface $engine,
    ) {
    }
}

特定引擎可在带有Engine后缀的配置键下找到

class Some {
    public function __construct(
        private readonly \Schranz\Search\SEAL\EngineInterface $algoliaEngine,
    ) {
    }
}

可以通过EngineRegistry访问多个引擎

class Some {
    private Engine $engine;

    public function __construct(
        private readonly \Schranz\Search\SEAL\EngineRegistry $engineRegistry,
    ) {
        $this->engine = $this->engineRegistry->get('algolia');
    }
}

如何创建Schema文件以及如何使用你的Engine可以在SEAL 文档中找到。

命令

该Bundle提供以下命令

创建配置索引

bin/console schranz:search:index-create --help

删除配置索引

bin/console schranz:search:index-drop --help

作者