pawellen/elasticsearch-bundle

Symfony 的 Elasticsearch 扩展包 (Fork)

安装: 323

依赖项: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 189

类型:symfony-bundle

v7.2.2 2024-05-12 09:14 UTC

README

Build Status Latest Stable Version codecov Total Downloads Scrutinizer Code Quality

Elasticsearch 扩展包是为了满足专业级 Elasticsearch 集成到企业级 Symfony 应用程序的需求而创建的。此扩展包是

  • 使用官方 elasticsearch-php 客户端。
  • 确保与 Symfony 框架和 Symfony Flex 完全集成。

技术特性

  • 提供了一种 DSL 查询构建器,以客观的方式表示所有 ElasticSearch 端点。
  • 通过 CLI 命令 (ongr:es:document:generate) 提供交互式文档对象生成器。
  • 创建了一种熟悉的 Doctrine 样式来处理文档(实体)文档对象映射,使用注解。
  • 提供多个查询结果迭代器,方便您处理结果。
  • 提供索引管理和数据导入/导出/重索引的 CLI 命令。
  • 分析器集成到 Symfony 调试栏中,并显示所有执行的查询。
  • 设计为可扩展的,以满足您的所有定制需求。
  • 支持 Symfony FLEX。

如果您需要任何帮助,Stack Overflow 是获取答案的首选方式。这是询问 ONGR 扩展包和库问题的首选和推荐方式。

如果您喜欢这个库,请通过购买一杯咖啡来帮助我开发它

Buy Me A Coffee

版本矩阵

文档

该扩展包的在线文档可在 http://docs.ongr.io 找到。文档源代码存储在仓库中的 Resources/doc/ 目录下,如果您发现错误或一些不准确之处,请提交一个 PR 或至少一个 issue 以修复它!

有关对文档的贡献,您可以在 contribute 主题中找到。

常见问题解答

设置扩展包

步骤 1:安装 Elasticsearch 扩展包

Elasticsearch 扩展包使用 Composer 进行安装。

php composer.phar require ongr/elasticsearch-bundle "~6.0"

有关安装和部署 Elasticsearch 的说明,请参阅 Elasticsearch 安装页面

在您的 AppKernel 中启用 ElasticSearch 扩展包

<?php
// config/bundles.php

return [
    // ...
    ONGR\ElasticsearchBundle\ONGRElasticsearchBundle::class => ['all' => true],
];

(可选) 步骤 2:添加配置

添加 Elasticsearch 扩展包的最小配置。

# config/packages/ongr_elasticsearch.yaml
ongr_elasticsearch:
    analysis:
        filter:
            edge_ngram_filter: #-> your custom filter name to use in the analyzer below
                type: edge_ngram 
                min_gram: 1
                max_gram: 20
        analyzer:
            eNgramAnalyzer: #-> analyzer name to use in the document field
                type: custom
                tokenizer: standard
                filter:
                    - lowercase
                    - edge_ngram_filter #that's the filter defined earlier
    indexes:
        App\Document\Product:
            hosts: [elasticsearch:9200] # optional, the default is 127.0.0.1:9200

这只是一个非常基本的示例,有关更多信息,请参阅 配置章节

步骤 3:将您的 Elasticsearch 类型定义为 Document 对象

此扩展包使用对象来表示 Elasticsearch 文档。让我们为 products 索引创建一个 Product 类。

// src/Document/Product.php

namespace App\Document;

use ONGR\ElasticsearchBundle\Annotation as ES;

/**
 * //alias and default parameters in the annotation are optional. 
 * @ES\Index(alias="products", default=true)
 */
class Product
{
    /**
     * @ES\Id()
     */
    public $id;

    /**
     * @ES\Property(type="text", analyzer="eNgramAnalyzer")
     */
    public $title;

    /**
     * @ES\Property(type="float")
     */
    public $price;
}

这只是一个基本的示例,有关映射的更多信息,请参阅 映射章节

步骤 4:创建索引和映射

Elasticsearch 扩展包提供了一些 CLI 命令。其中之一是用于创建索引,请在您的终端中运行此命令

bin/console ongr:es:index:create

现在应该使用您的文档字段创建products索引。

有关其余命令的更多信息,请参阅命令章节

步骤 5:享受Elasticsearch的乐趣

Elasticsearch扩展包的完整文档在此处提供。希望您能用它创造出令人惊叹的事物 😎。

请注意,将扩展包的文档更新到6.0的过程仍在进行中。请阅读已经更新的配置CRUD部分,这将使您能够拥有扩展包的基本功能。我们将尽快更新其余的文档。

故障排除

许可证

本扩展包采用MIT许可证授权。请查阅扩展包中的LICENSE文件以获取完整的许可证信息。