dachcom-digital / dynamic-search-index-provider-lucene
Installs: 52 083
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 9
Forks: 4
Open Issues: 0
Type:dynamic-search-provider-bundle
Requires
- dachcom-digital/dynamic-search: ^3.0 || ^4.0
- dachcom-digital/zendsearch: ~3.0.1
- pimcore/pimcore: ^11.0
- wamania/php-stemmer: ~1.2
Requires (Dev)
- codeception/codeception: ^5.0
- codeception/module-symfony: ^3.1
- phpstan/phpstan: ^2.0
- phpstan/phpstan-symfony: ^2.0
- symplify/easy-coding-standard: ~12.2.0
Suggests
- org_heigl/hyphenator: ^2.3
README
An index storage extension for Pimcore Dynamic Search. Store data with the PHP Lucene index service.
Release Plan
Release | Supported Pimcore Versions | Supported Symfony Versions | Release Date | Maintained | Branch |
---|---|---|---|---|---|
3.x | 11.0 |
^6.4 |
28.09.2023 | Feature Branch | master |
2.x | 10.0 - 10.6 |
^5.4 |
19.12.2021 | No | 2.x |
1.x | 6.6 - 6.9 |
^4.4 |
18.04.2021 | No | 1.x |
Installation
"require" : { "dachcom-digital/dynamic-search" : "~3.0.0", "dachcom-digital/dynamic-search-index-provider-lucene" : "~3.0.0" }
Dependencies
This package will also install a fork of ZendSearch to provide the latest PHP compatibility.
Dynamic Search Bundle
You need to install / enable the Dynamic Search Bundle first. Read more about it here. After that, proceed as followed:
Add Bundle to bundles.php
:
<?php return [ \DsLuceneBundle\DsLuceneBundle::class => ['all' => true], ];
Basic Setup
dynamic_search: context: default: index_provider: service: 'lucene' options: database_name: 'my_lucene_storage'
Provider Options
Name | Default Value | Description |
---|---|---|
database_name |
null | |
force_adding_document |
true | |
analyzer |
[] |
Index Fields
Available Index Fields:
Name | Description |
---|---|
binary |
Binary fields are not tokenized or indexed, but are stored for retrieval with search hits. They can be used to store any data encoded as a binary string, such as an image icon. |
keyword |
Keyword fields are stored and indexed, meaning that they can be searched as well as displayed in search results. They are not split up into separate words by tokenization. |
text |
Text fields are stored, indexed, and tokenized. Text fields are appropriate for storing information like subjects and titles that need to be searchable as well as returned with search results. |
unIndexed |
UnIndexed fields are not searchable, but they are returned with search hits. Database timestamps, primary keys, file system paths, and other external identifiers are good candidates for UnIndexed fields. |
unStored |
UnStored fields are tokenized and indexed, but not stored in the index. Large amounts of text are best indexed using this type of field. Storing data creates a larger index on disk, so if you need to search but not redisplay the data, use an UnStored field. |
Output Channel Services
Autocomplete
Identifier: lucene_autocomplete
Available Options:
Name | Default Value | Description |
---|---|---|
min_prefix_length |
3 | |
use_fuzzy_term_search_fallback |
true | |
fuzzy_default_prefix_length |
||
fuzzy_similarity |
0.5 |
Suggestions
Identifier: lucene_suggestions
Available Options:
Name | Default Value | Description |
---|---|---|
min_prefix_length |
3 | |
result_limit |
10 | |
only_last_word_wildcard |
false | |
multiple_words_operator |
'OR' | |
restrict_search_fields |
[] | |
restrict_search_fields_operator |
'OR' |
Search
Identifier: lucene_search
Available Options:
Name | Default Value | Description |
---|---|---|
min_prefix_length |
3 | |
max_per_page |
10 |
Multi Search
Identifier: lucene_multi_search
Available Options: none
Filter
RelationsFilter
Identifier: relations
Available Options:
Name | Default Value | Allowed Type | Description |
---|---|---|---|
identifier |
null | string | |
value |
null | string | |
label |
null | string, null | |
show_in_frontend |
true | bool | |
relation_label |
null | closure, null |
Output Normalizer
A Output Normalizer can be defined for each output channel.
lucene_document_key_value_normalizer
Available Options:
Name | Default Value | Description |
---|---|---|
skip_fields |
[] |
Further Information
- Lucene Configuration
- Custom Analyzer (Example: Syllable Analyzer)
- Lucene Token Filter (Stemming Filter, Stop Words Filter)
- Debugging (Debugging Lucene Index Database)
Upgrade Info
Before updating, please check our upgrade notes!
License
DACHCOM.DIGITAL AG, Löwenhofstrasse 15, 9424 Rheineck, Schweiz
dachcom.com, dcdi@dachcom.ch
Copyright © 2025 DACHCOM.DIGITAL. All rights reserved.
For licensing details please visit LICENSE.md