-
Notifications
You must be signed in to change notification settings - Fork 24.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Reload search analyzers does not work correctly with multiplexer filter (showstopper) #50554
Comments
Pinging @elastic/es-search (:Search/Analysis) |
Seems like the reloading action doesn't trigger the reload on the analyzer containing the multiplexer because as a filter in itself, that one isn't "updateable" (that is, it doesn't inherit the updateable property of the synonym filter it contains. I think we can try making the multiplexer search-time only if any of the filters it uses is search-time (i.e. updateable). I'll have a WIP as a proposal shortly, not however that there seem to be some general, documented restrictions on using synonym filters in multiplexers that are unrelated to this issue, |
Currently, if an updateable synonym filter is included in a multiplexer filter, it is not reloaded via the _reload_search_analyzers because the multiplexer itself doesn't pass on the analysis mode of the filters it contains, so its not recognized as "updateable" in itself. Instead we can check and merge the AnalysisMode settings of all filters in the multiplexer and use the resulting mode (e.g. search-time only) for the multiplexer itself, thus making any synonym filters contained in it reloadable. This, of course, will also make the analyzers using the multiplexer be usable at search-time only. Closes #50554
Currently, if an updateable synonym filter is included in a multiplexer filter, it is not reloaded via the _reload_search_analyzers because the multiplexer itself doesn't pass on the analysis mode of the filters it contains, so its not recognized as "updateable" in itself. Instead we can check and merge the AnalysisMode settings of all filters in the multiplexer and use the resulting mode (e.g. search-time only) for the multiplexer itself, thus making any synonym filters contained in it reloadable. This, of course, will also make the analyzers using the multiplexer be usable at search-time only. Closes #50554
Currently, if an updateable synonym filter is included in a multiplexer filter, it is not reloaded via the _reload_search_analyzers because the multiplexer itself doesn't pass on the analysis mode of the filters it contains, so its not recognized as "updateable" in itself. Instead we can check and merge the AnalysisMode settings of all filters in the multiplexer and use the resulting mode (e.g. search-time only) for the multiplexer itself, thus making any synonym filters contained in it reloadable. This, of course, will also make the analyzers using the multiplexer be usable at search-time only. Closes elastic#50554
Elasticsearch version: Version: 7.5.1
Plugins installed: []
JVM version: 13.0.1
OS version: Windows 10 Pro
Description of the problem including expected versus actual behavior: When the synonym_graph filter is not used directly in an analyzer but is included in multiplexer filter (for example to allow combination with word_delimiter_graph), _reload_search_analyzers does not correctly find and reload appropriate analyzer.
Steps to reproduce:
4. I would expect the my_synonyms analyzer to be reloaded also
The text was updated successfully, but these errors were encountered: