f489d2034b
Improvements: 1) Index settings moved from code to etc/searchengine/elasticsearch/index_config.yaml. An alternative can be specified in koha-conf.xml. 2) Field settings moved from code to etc/searchengine/elasticsearch/field_config.yaml. An alternative can be specified in koha-conf.xml. 3) mappings.yaml has been moved from admin/searchengine/elasticsearch to etc/searchengine/elasticsearch. An alternative can be specified in koha-conf.xml. 4) Default settings have been improved to remove punctuation from phrases used for sorting etc. 5) State variables are used for storing configuration to avoid parsing it multiple times. 6) A possibility to reset the fields too has been added to the reset operation of mappings administration. 7) mappings.yaml has been moved from admin/searchengine/elasticsearch to etc/searchengine/elasticsearch. 8) An stdno field type has been added for standard identifiers. To test: 1) Run tests in t/Koha/SearchEngine/Elasticsearch.t 2) Clear tables search_fields and search_marc_map 3) Go to admin/searchengine/elasticsearch/mappings.pl?op=reset&i_know_what_i_am_doing=1 4) Verify that admin/searchengine/elasticsearch/mappings.pl displays the mappings properly, including ISBN and other standard number fields. 5) Index some records using the -d parameter with misc/search_tools/rebuild_elastic_search.pl to recreate the index 6) Verify that you can find the records 7) Put <elasticsearch_index_mappings>non_existent</elasticsearch_index_mappings> to koha-conf.xml 8) Verify that admin/searchengine/elasticsearch/mappings.pl?op=reset&i_know_what_i_am_doing=1 fails because it can't find non_existent. 9) Copy etc/searchengine/elasticsearch/mappings.yaml to a new location and make elasticsearch_index_mappings setting in koha-conf.xml point to it. 10) Make a change in the new mappings.yaml. 11) Clear table search_fields (mappings reset doesn't do it yet, see bug 20248) 12) Go to admin/searchengine/elasticsearch/mappings.pl?op=reset&i_know_what_i_am_doing=1 13) Verify that the changes you made are now visible in the mappings UI Signed-off-by: Nicolas Legrand <nicolas.legrand@bulac.fr> Signed-off-by: Nick Clemens <nick@bywatersolutions.com> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
34 lines
1 KiB
YAML
34 lines
1 KiB
YAML
---
|
|
# Index configuration that defines how different analyzers work.
|
|
index:
|
|
analysis:
|
|
analyzer:
|
|
# Phrase analyzer is used for phrases (phrase match, sorting)
|
|
analyser_phrase:
|
|
tokenizer: keyword
|
|
filter:
|
|
- icu_folding
|
|
char_filter:
|
|
- punctuation
|
|
analyser_standard:
|
|
tokenizer: icu_tokenizer
|
|
filter:
|
|
- icu_folding
|
|
analyser_stdno:
|
|
tokenizer: whitespace
|
|
filter:
|
|
- icu_folding
|
|
char_filter:
|
|
- punctuation
|
|
normalizer:
|
|
normalizer_keyword:
|
|
type: custom
|
|
filter:
|
|
- icu_folding
|
|
char_filter:
|
|
# The punctuation filter is used to remove any punctuation chars in fields that don't use icu_tokenizer.
|
|
punctuation:
|
|
type: pattern_replace
|
|
# The pattern contains all ASCII punctuation characters.
|
|
pattern: '([\x00-\x1F,\x21-\x2F,\x3A-\x40,\x5B-\x60,\x7B-\x89,\x8B,\x8D,\x8F,\x90-\x99,\x9B,\x9D,\xA0-\xBF,\xD7,\xF7])'
|
|
replacement: ''
|