elinoi-dev / elinoi-search-bundle
Make sure search:import soesn't stop mid-process
Installs: 4 214
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 71
Type:symfony-bundle
Requires
- php: >= 8.0.2
- algolia/algoliasearch-client-php: ^3.0
- doctrine/event-manager: ^1.1
- doctrine/persistence: ^2.1 || ^3.0
- symfony/filesystem: ^5.0 || ^6.0
- symfony/property-access: ^5.0 || ^6.0
- symfony/serializer: ^5.0 || ^6.0
Requires (Dev)
- ext-json: *
- doctrine/doctrine-bundle: ^1.8 || ^2.0
- doctrine/orm: ^2.5
- friendsofphp/php-cs-fixer: ^2.15
- friendsofphp/proxy-manager-lts: *
- jms/serializer-bundle: ^3.0
- phpunit/phpunit: ^8.5 || ^9.0
- roave/security-advisories: dev-master
- symfony/framework-bundle: ^5.0 || ^6.0
- symfony/phpunit-bridge: ^5.0 || ^6.0
- symfony/proxy-manager-bridge: *
- symfony/yaml: ^5.0 || ^6.0
Conflicts
- doctrine/mongodb-odm: < 1.3
This package is auto-updated.
Last update: 2024-10-28 12:10:58 UTC
README
The perfect starting point to integrate Algolia within your Symfony project
Documentation • PHP • Laravel • Community Forum • Stack Overflow • Report a bug • FAQ • Support
✨ Features
- Simple: You can get started with only 5 lines of YAML
- Robust: It benefits from all the new features of our PHP Client v2, like the
wait()
method - Flexible: All methods take optional
$requestOptions
to let you handle your data as you wish - Dev-friendly: Auto-completion and type-hinting thanks to an exhaustive documentation
Algolia SearchBundle supports PHP > 7.1
💡 Getting Started
First, install Algolia Search Bundle Integration via the composer package manager:
composer require algolia/search-bundle
You will also need to provide the Algolia App ID and Admin API key. By default, they
are loaded from environment variables ALGOLIA_APP_ID
and ALGOLIA_API_KEY
.
If you use .env
config file, you can set them there.
ALGOLIA_APP_ID=XXXXXXXXXX ALGOLIA_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
If you don't use environment variables, you can set them in your parameters.yml
.
parameters: env(ALGOLIA_APP_ID): XXXXXXXXXX env(ALGOLIA_API_KEY): xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Indexing data
First, we need to define which entities should be indexed in Algolia.
Each entry under the indices
config key must contain at least the 2 following attributes:
name
is the canonical name of the index in Algoliaclass
is the full name of the entity to index
Example:
algolia_search: indices: - name: posts class: App\Entity\Post
Via CLI
Once your indices
config is ready, you can use the built-in console command
to batch import all existing data.
# Import all indices php bin/console search:import # Choose what indices to reindex by passing the index name php bin/console search:import --indices=posts,comments
Before re-indexing everything, you may want to clear the index first, see how to remove data.
Simple Search
In this example we'll search for posts. The search
method will query Algolia
to get matching results and then will create a doctrine collection. The data are
pulled from the database (that's why you need to pass the Doctrine Manager).
$em = $this->getDoctrine()->getManagerForClass(Post::class); $posts = $this->searchService->search($em, Post::class, 'query');
For full documentation, visit the Algolia Symfony Search Bundle.
Troubleshooting
Encountering an issue? Before reaching out to support, we recommend heading to our FAQ where you will find answers for the most common issues and gotchas with the bundle.
Use the Dockerfile
If you want to contribute to this project without installing all its dependencies, you can use our Docker image. Please check our dedicated guide to learn more.
📄 License
Algolia Symfony Search Bundle is an open-sourced software licensed under the MIT license.