escapehither / search-manager-bundle
此包的最新版本(0.3.0)没有提供许可证信息。
此symfony扩展包为symfony应用程序提供搜索和索引功能
0.3.0
2018-09-30 15:23 UTC
Requires
- php: >=5.5.9
- doctrine/doctrine-bundle: ^1.6
- doctrine/doctrine-cache-bundle: ^1.2
- doctrine/doctrine-migrations-bundle: ^1.2
- doctrine/orm: ^2.5
- elasticsearch/elasticsearch: ^5.2
- guzzlehttp/guzzle: ^6.2
- sensio/distribution-bundle: ^5.0
- sensio/framework-extra-bundle: ^3.0.2
- stof/doctrine-extensions-bundle: ^1.2
- symfony/polyfill-apcu: ^1.0
- symfony/serializer: ^3.2
- symfony/symfony: 3.*
- white-october/pagerfanta-bundle: ^1.0
Requires (Dev)
- behat/behat: ^3.3
- behat/mink: ^1.7
- behat/mink-browserkit-driver: ^1.3
- behat/mink-extension: ^2.2
- behat/mink-goutte-driver: ^1.2
- behat/mink-selenium2-driver: ^1.3
- behat/mink-zombie-driver: ^1.4
- behat/symfony2-extension: ^2.1
- behat/web-api-extension: ~1.0@dev
- escapestudios/symfony2-coding-standard: ~2.0
- phpunit/php-invoker: ~1.1
- phpunit/phpunit: ^4.8.35 || ^5.7.11 || ^6.5
- symfony/phpunit-bridge: ^3.0
This package is not auto-updated.
Last update: 2024-10-01 10:39:17 UTC
README
此扩展包为官方Elasticsearch PHP提供集成
版本和依赖
与Elasticsearch 5和6兼容。它需要Symfony 3或4。当使用
下表显示了扩展包不同版本的兼容性。
步骤 1:下载扩展包
打开命令行,进入您的项目目录,并执行以下命令以下载此扩展包的最新稳定版本
$ composer require escapehither/search-manager-bundle dev-master
此命令要求您全局安装Composer,如Composer文档中的安装章节所述。
步骤 2:启用扩展包
然后,通过将其添加到项目中 app/AppKernel.php
文件中注册的扩展包列表来启用扩展包
<?php // app/AppKernel.php // ... class AppKernel extends Kernel { public function registerBundles() { $bundles = array( // ... new EscapeHither\SearchManagerBundle\EscapeHitherSearchManagerBundle(), ); // ... } // ... }
步骤 3:创建您的资源类
此扩展包使用 Symfony 序列化组件。 假设您有一个资源类,添加注释组。只有组中的属性会被标准化。
namespace Acme; use Symfony\Component\Serializer\Annotation\Groups; use EscapeHither\SearchManagerBundle\Entity\IndexableEntityInterface; class Product implements IndexableEntityInterface { /** * @Groups({"index"}) */ public $bar; /** * @var \DateTime $updatedAt */ public $updatedAt; /** * @Groups({"index"}) */ public function getBar() // is* methods are also supported { return $this->bar; } /** * This method tells doctrine to always track this entity. */ public function trackMe(){ $this->updatedAt = new \DateTime('now'); } // ... }
步骤 4:导入和定义配置
-
在
app/config/config.yml
中导入配置文件以进行默认过滤器集配置imports: - { resource: "@EscapeHitherSearchManagerBundle/Resources/config/services.yml" } - { resource: "@EscapeHitherSearchManagerBundle/Resources/config/config.yml" }
-
导入路由文件
app/config/routing.yml
escape_hither_security_manager: resource: "@EscapeHitherSecurityManagerBundle/Resources/config/routing.yml" prefix: /
-
配置参考:如果您想索引您的资源,请将其添加到您的配置文件中。
escape_hither_search_manager: host: es indexes: product: entity: OpenMarketPlace\ProductManagerBundle\Entity\Product index_name: open-market-place type: product facets: tags: categories: include: ['id','code','name'] tags_relation: offer.seller.id: entity: OpenMarketPlace\UserManagerBundle\Entity\Seller index_name: open-market-place type: seller field_name: commercialName display_name: Seller tag_type: terms dates: createdAt: field_name: createdAt display_name: date one tag_type: terms updatedAt: field_name: updatedAt display_name: date two tag_type: terms ranges: createddAt: field_name: createddAt display_name: range one tag_type: date updateddAt: field_name: updateddAt display_name: range two tag_type: date masterVariant.price: field_name: masterVariant.price display_name: price tag_type: price
4:索引所有内容
每次添加新字段时,索引所有文档。此命令将根据提供的索引删除并重建所有内容。
$ bin/console cache:clear -e prod $ bin/console cache:clear $ bin/console escapehither:esm:index:all
- 添加搜索页面
如果您想创建新的搜索路由,在您的 routing.yml
文件中添加新的路由即可。
genia_search: path: /search defaults: _controller: "EscapeHitherSearchManagerBundle:Default:search" template: OpenMarketPlaceSearchManagerBundle:Default:index.html.twig index : name: open-market-place type: product pagination: size: 10 methods: GET