require "analyzer", "search_analyzer" and "normalizer" to be set for all stringy fields #412
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is something I've been wanting to do for a while, it explicitly sets the
analyzer
andsearch_analyzer
property for all stringy fields.I've included a tool with this PR which can be used to list all the fields and their corresponding analyzers.
The default behaviour of elasticsearch is to default all analyzers to
standard
when not defined and to defaultsearch_analyzer
to equalanalyzer
when it's defined.So while it's not totally necessary to define an explicit
search_analyzer
when it's equal to theanalyzer
I have made this mandatory and covered it with tests, this ensures that it is considered when adding new fields or adapting existing ones.I set out to try and do this as a no-op refactor (basing the
search_analyzer
settings on what's in thedefaults
forpelias/api
), however, I discovered fairly quickly that the existing config is sub-optimal and so I've made the following changes: