micka-17/typesense-bundle
最新稳定版本:v1.0.0-alpha.1
Composer 安装命令:
composer require micka-17/typesense-bundle
包简介
Un bundle Symfony pour intégrer Typesense.
README 文档
README
Ce bundle facilite l'intégration de Typesense dans vos applications Symfony. Il permet d'indexer automatiquement vos entités Doctrine dans Typesense et de gérer les opérations de recherche.
Installation
composer require micka-17/typesense-bundle
Configuration
typesense: api_key: '%env(TYPENSE_API_KEY)%' nodes: - host: '%env(TYPENSE_HOST)%' port: '%env(TYPENSE_PORT)%' protocol: '%env(TYPENSE_PROTOCOL)%' indexable_entities: - App\Entity\Product - App\Entity\Category synonyms: - { id: 'size-synonyms', synonyms: ['large', 'big', 'huge'] } - { id: 'color-synonyms', root: 'primary_color', synonyms: ['red', 'blue', 'green'] } auto_update: true
Utilisation
Indexation des Entités
#[TypesenseIndexable(collection: 'products')] #[TypesenseSynonym(id: 'product-synonyms', synonyms: ['item', 'good', 'merchandise'])] class Product { #[TypesenseField( name: 'name', type: 'string', facet: true, sort: true )] private string $name; }
Recherche
Le service FinderService vous permet d'effectuer des recherches simples, paginées ou sur plusieurs collections.
use Micka17\TypesenseBundle\Service\FinderService; class YourService { public function __construct(private FinderService $finderService) {} public function searchProducts(string $query) { return $this->finderService->search('products', ['q' => $query]); } public function searchProductsPaginated(string $query, int $page = 1) { return $this->finderService->searchAndPaginate('products', ['q' => $query], $page, 15); } public function searchMulti(string $query) { $searchRequests = [ 'searches' => [ ['collection' => 'products', 'q' => $query], ['collection' => 'categories', 'q' => $query], ] ]; return $this->finderService->multiSearch($searchRequests); } }
Commandes
# Créer une collection php bin/console micka17:typesense:manage create "App\Entity\Product" # Recréer une collection php bin/console micka17:typesense:manage recreate "App\Entity\Product" # Re-indexer une collection php bin/console micka17:typesense:manage reindex "App\Entity\Product" # Supprimer une collection php bin/console micka17:typesense:manage delete "App\Entity\Product" # Gérer les synonymes php bin/console micka17:typesense:synonyms <action> <synonym-id> <synonyms> --collection=<collection> # Appliquer les synonymes depuis la configuration et les attributs php bin/console micka17:typesense:synonyms:apply
Documentation Complète
Pour plus de détails sur la configuration et l'utilisation, consultez la documentation complète.
Contribuer
Les contributions sont les bienvenues ! N'hésitez pas à créer des issues ou des pull requests.
Support
Pour toute question ou problème, ouvrez une issue sur le repository GitHub du projet.
License
Ce bundle est distribué sous la licence MIT.
统计信息
- 总下载量: 27
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-07-03