netgen / ibexa-search-extra
Netgen's extra search bits for Ibexa CMS
Installs: 6 970
Dependents: 4
Suggesters: 0
Security: 0
Stars: 0
Watchers: 7
Forks: 2
Open Issues: 3
Type:ibexa-bundle
Requires
- php: >=8.1
- ext-dom: *
- ext-json: *
- ibexa/core: ^4.6
- symfony/messenger: ^5.4
- symfony/proxy-manager-bridge: ^5.4
Requires (Dev)
- behat/behat: ^3.6.1
- friends-of-behat/mink-extension: ^2.4
- ibexa/fieldtype-richtext: ^4.5
- ibexa/solr: ^4.5
- matthiasnoback/symfony-dependency-injection-test: ^4.1
- phpunit/phpunit: ^8.5
Suggests
- ibexa/solr: Supports advanced capabilities with Ibexa search API
- netgen/ibexa-site-api: Boost your site-building productivity with Ibexa CMS
Conflicts
- symfony/cache: 5.0.11 || 5.1.3
This package is auto-updated.
Last update: 2024-12-11 12:55:52 UTC
README
Features
This only lists all implemented features, see the documentation for more details on specific ones.
-
Support for asynchronous indexing (
solr
,legacy
) -
ContentName
criterion that works on matched translation's Content name (solr
,legacy
) -
ContentName
sort clause that works on matched translation's Content name (solr
,legacy
) -
ContentId
andLocationId
criteria with support for range operators (solr
,legacy
)Supported operators are:
EQ
,IN
,GT
,GTE
,LT
,LTE
,BETWEEN
. -
Visible
criterion (solr
,legacy
), usable in both Content and Location search. The criterion works on compound visibility of Content and Location objects: the Content is visible if it's marked as visible; the Location is visible if it's marked as visible, is not hidden by one of its ancestor Locations, and it's Content is visible. -
CustomField
sort clause (solr
)Provides a way to sort directly on Solr field by its name.
-
Pagerfanta adapters providing access to extra information returned by the search engine, like facets, aggregations, max score and execution time (
solr
,legacy
):SearchAdapter
when usingAPI
search serviceSearchHandlerAdapter
when usingSPI
search handler
-
ObjectStateIdentifier
criterion (solr
,legacy
) -
SectionIdentifier
criterion (solr
,legacy
) -
Support for custom Content subdocuments (Solr search engine) (
solr
)Provides a way to index custom subdocuments to Content document and
SubdocumentQuery
criterion, available in Content search to define grouped conditions for a custom subdocument. -
SubdocumentField
sort clause (solr
)Provides a way to sort Content by a subdocument field, choosing score calculation mode and optionally limiting with
SubdocumentQuery
criterion.Note: This will require Solr
6.6
or higher in order to work correctly with all scoring modes. -
LocationQuery
criterion (solr
,legacy
)Allows grouping of Location criteria so that they apply together on a Location.
-
CustomFieldFacetBuilder
facet builder (solr
)Allows building facets on custom Solr fields.
-
RawFacetBuilder
facet builder (solr
)Exposes Solr's JSON facet API in full.
-
Indexable implementations for
RichText
(solr
)These implementations shorten text indexed as keyword to 256 characters, which prevents failures when the field's content is too big for Solr's string field. They can be controlled with semantic configuration (showing defaults):
netgen_ibexa_search_extra: indexable_field_type: ezrichtext: enabled: true short_text_limit: 256
-
Loading
implementation of result extractor (solr
)Loading result extractor gets it's value objects by loading them from the persistence. This prevents:
UnauthorizedException
failures because of the missingcontent/versionread
permission when Content is updated and incremented current version number is not yet indexed in SolrNotFoundException
failures when Content/Location is deleted and the corresponding document is not yet removed from Solr index
Usage of loading result extractor can be controlled with semantic configuration (showing defaults):
netgen_ibexa_search_extra: use_loading_search_result_extractor: true
Installation
To install Ibexa Search Extra first add it as a dependency to your project:
composer require netgen/ibexa-search-extra:^3.0
Once the added dependency is installed, activate the bundle in config/bundles.php
file by adding it to the returned array, together with other required bundles:
<?php return [ //... Netgen\Bundle\IbexaSearchExtraBundle\NetgenIbexaSearchExtraBundle::class => ['all' => true], }