{"id":23395836,"url":"https://github.com/netgen/ibexa-search-extra","last_synced_at":"2025-04-11T14:11:39.676Z","repository":{"id":42430743,"uuid":"464501172","full_name":"netgen/ibexa-search-extra","owner":"netgen","description":"Netgen's extra bits for Ibexa CMS Search","archived":false,"fork":false,"pushed_at":"2024-05-29T11:14:37.000Z","size":708,"stargazers_count":0,"open_issues_count":5,"forks_count":2,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-05-29T18:53:35.275Z","etag":null,"topics":["ibexa","ibexa-bundle","php","search","solr"],"latest_commit_sha":null,"homepage":"https://netgen.io","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/netgen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-02-28T13:51:27.000Z","updated_at":"2024-05-31T10:45:55.281Z","dependencies_parsed_at":"2023-11-13T12:30:56.020Z","dependency_job_id":"677e7290-bbb0-4a0c-a893-e8c440e3c01b","html_url":"https://github.com/netgen/ibexa-search-extra","commit_stats":{"total_commits":351,"total_committers":8,"mean_commits":43.875,"dds":"0.19943019943019946","last_synced_commit":"a7dd94fc9d43df0cd390afee1ed7fb64db3ee842"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netgen%2Fibexa-search-extra","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netgen%2Fibexa-search-extra/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netgen%2Fibexa-search-extra/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netgen%2Fibexa-search-extra/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/netgen","download_url":"https://codeload.github.com/netgen/ibexa-search-extra/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248414368,"owners_count":21099462,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ibexa","ibexa-bundle","php","search","solr"],"created_at":"2024-12-22T07:18:32.161Z","updated_at":"2025-04-11T14:11:39.614Z","avatar_url":"https://github.com/netgen.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Netgen's extra bits for Ibexa CMS Search\n\n[![Build Status](https://img.shields.io/github/actions/workflow/status/netgen/ibexa-search-extra/tests.yml?branch=master)](https://github.com/netgen/ibexa-search-extra/actions)\n[![Read the Docs](https://img.shields.io/readthedocs/netgens-search-extra-for-ibexa-cms)](https://docs.netgen.io/projects/search-extra)\n[![Downloads](https://img.shields.io/packagist/dt/netgen/ibexa-search-extra.svg)](https://packagist.org/packages/netgen/ibexa-search-extra)\n[![Latest stable](https://img.shields.io/github/release/netgen/ibexa-search-extra.svg)](https://packagist.org/packages/netgen/ibexa-search-extra)\n[![PHP](https://img.shields.io/badge/PHP-%E2%89%A5%208.1-%238892BF.svg)](https://secure.php.net/)\n[![Ibexa](https://img.shields.io/badge/Ibexa-%E2%89%A5%204.6-orange.svg)](https://ibexa.co/)\n\n## Features\n\nThis only lists all implemented features, see the\n[documentation](https://docs.netgen.io/projects/search-extra)\nfor more details on specific ones.\n\n- Support for [asynchronous indexing](https://docs.netgen.io/projects/search-extra/en/latest/reference/asynchronous_indexing.html) (`solr`, `legacy`)\n\n- [`ContentName`](https://github.com/netgen/ibexa-search-extra/blob/master/lib/API/Values/Content/Query/Criterion/ContentName.php) criterion that works on matched translation's Content name (`solr`, `legacy`)\n\n- [`ContentName`](https://github.com/netgen/ibexa-search-extra/blob/master/lib/API/Values/Content/Query/SortClause/ContentName.php) sort clause that works on matched translation's Content name (`solr`, `legacy`)\n\n- [`ContentId`](https://github.com/netgen/ibexa-search-extra/blob/master/lib/API/Values/Content/Query/Criterion/ContentId.php) and [`LocationId`](https://github.com/netgen/ibexa-search-extra/blob/master/lib/API/Values/Content/Query/Criterion/LocationId.php) criteria with support for range operators (`solr`, `legacy`)\n\n  Supported operators are: `EQ`, `IN`, `GT`, `GTE`, `LT`, `LTE`, `BETWEEN`.\n\n- [`Visible`](https://github.com/netgen/ibexa-search-extra/blob/master/lib/API/Values/Content/Query/Criterion/Visible.php) criterion (`solr`, `legacy`),\n  usable in both Content and Location search. The criterion works on compound visibility of Content and Location objects:\n  the Content is visible if it's marked as visible; the Location is visible if it's marked as visible, is not hidden by\n  one of its ancestor Locations, and it's Content is visible.\n\n- [Spellcheck suggestions support](https://docs.netgen.io/projects/search-extra/en/latest/reference/spellcheck_suggestions.html) (`solr`)\n\n- [`CustomField`](https://github.com/netgen/ibexa-search-extra/blob/master/lib/API/Values/Content/Query/SortClause/CustomField.php) sort clause (`solr`)\n\n  Provides a way to sort directly on Solr field by its name.\n\n- Pagerfanta adapters providing access to extra information returned by the search\n  engine, like facets, aggregations, max score and execution time (`solr`, `legacy`):\n\n  - [`SearchAdapter`](https://github.com/netgen/ibexa-search-extra/blob/master/lib/Core/Pagination/Pagerfanta/SearchAdapter.php) when using `API` search service\n  - [`SearchHandlerAdapter`](https://github.com/netgen/ibexa-search-extra/blob/master/lib/Core/Pagination/Pagerfanta/SearchHandlerAdapter.php) when using `SPI` search handler\n\n- [`ObjectStateIdentifier`](https://github.com/netgen/ibexa-search-extra/blob/master/lib/API/Values/Content/Query/Criterion/ObjectStateIdentifier.php) criterion (`solr`, `legacy`)\n- [`SectionIdentifier`](https://github.com/netgen/ibexa-search-extra/blob/master/lib/API/Values/Content/Query/Criterion/SectionIdentifier.php) criterion (`solr`, `legacy`)\n- Support for custom Content subdocuments (Solr search engine) (`solr`)\n\n  Provides a way to index custom subdocuments to Content document and\n  [`SubdocumentQuery`](https://github.com/netgen/ibexa-search-extra/blob/master/lib/API/Values/Content/Query/Criterion/SubdocumentQuery.php)\n  criterion, available in Content search to define grouped conditions for a custom subdocument.\n\n- [`SubdocumentField`](https://github.com/netgen/ibexa-search-extra/blob/master/lib/API/Values/Content/Query/SortClause/SubdocumentField.php) sort clause (`solr`)\n\n  Provides a way to sort Content by a subdocument field, choosing score calculation mode and optionally limiting with `SubdocumentQuery` criterion.\n\n  **Note:** This will require Solr `6.6` or higher in order to work correctly with all scoring modes.\n\n- [`LocationQuery`](https://github.com/netgen/ibexa-search-extra/blob/master/lib/API/Values/Content/Query/Criterion/LocationQuery.php) criterion (`solr`, `legacy`)\n\n  Allows grouping of Location criteria so that they apply together on a Location.\n\n- [`CustomFieldFacetBuilder`](https://github.com/netgen/ibexa-search-extra/blob/master/lib/API/Values/Content/Query/FacetBuilder/CustomFieldFacetBuilder.php) facet builder (`solr`)\n\n  Allows building facets on custom Solr fields.\n\n- [`RawFacetBuilder`](https://github.com/netgen/ibexa-search-extra/blob/master/lib/Core/Search/Solr/API/FacetBuilder/RawFacetBuilder.php) facet builder (`solr`)\n\n  Exposes Solr's [JSON facet API](https://lucene.apache.org/solr/guide/7_4/json-facet-api.html) in full.\n\n- Indexable implementations for [`RichText`](https://github.com/netgen/ibexa-search-extra/blob/master/lib/Core/FieldType/RichText/Indexable.php) (`solr`)\n\n  These implementations shorten text indexed as keyword to 256 characters, which prevents failures\n  when the field's content is too big for Solr's string field. They can be controlled with\n  semantic configuration (showing defaults):\n\n  ```yaml\n  netgen_ibexa_search_extra:\n      indexable_field_type:\n          ezrichtext:\n              enabled: true\n              short_text_limit: 256\n  ```\n\n- [`Loading`](https://github.com/netgen/ibexa-search-extra/blob/master/lib/Core/Search/Solr/ResultExtractor/LoadingResultExtractor.php) implementation of result extractor (`solr`)\n\n  Loading result extractor gets it's value objects by loading them from the persistence. This\n  prevents:\n\n    - `UnauthorizedException` failures because of the missing `content/versionread` permission\n    when Content is updated and incremented current version number is not yet indexed in Solr\n    - `NotFoundException` failures when Content/Location is deleted and the corresponding document\n    is not yet removed from Solr index\n\n  Usage of loading result extractor can be controlled with semantic configuration (showing defaults):\n\n  ```yaml\n  netgen_ibexa_search_extra:\n      use_loading_search_result_extractor: true\n  ```\n\n## Installation\n\nTo install Ibexa Search Extra first add it as a dependency to your project:\n\n```sh\ncomposer require netgen/ibexa-search-extra:^3.0\n```\n\nOnce 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:\n\n```php\n\u003c?php\n\nreturn [\n    //...\n\n    Netgen\\Bundle\\IbexaSearchExtraBundle\\NetgenIbexaSearchExtraBundle::class =\u003e ['all' =\u003e true],\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetgen%2Fibexa-search-extra","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnetgen%2Fibexa-search-extra","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetgen%2Fibexa-search-extra/lists"}