Briefly, this error occurs when Elasticsearch cannot find the affix file for the Hunspell dictionary. Hunspell is used for text analysis in Elasticsearch and it requires two files: a dictionary file (.dic) and an affix file (.aff). If either is missing, this error will occur. To resolve this issue, ensure both files are present in the correct directory. If they are missing, you may need to download them. Also, check the file paths in your Elasticsearch configuration to ensure they are correct.
This guide will help you check for common problems that cause the log ” Missing affix file for hunspell dictionary [%s] ” to appear. To understand the issues related to this log, read the explanation below about the following Elasticsearch concepts: indices, analysis.
Log Context
Log “Missing affix file for hunspell dictionary [%s]” class name is HunspellService.java. We extracted the following from Elasticsearch source code for those seeking an in-depth context :
boolean ignoreCase = nodeSettings.getAsBoolean("ignore_case"; defaultIgnoreCase); Path[] affixFiles = FileSystemUtils.files(dicDir; "*.aff"); if (affixFiles.length == 0) { throw new ElasticsearchException(String.format(Locale.ROOT; "Missing affix file for hunspell dictionary [%s]"; locale)); } if (affixFiles.length != 1) { throw new ElasticsearchException(String.format(Locale.ROOT; "Too many affix files exist for hunspell dictionary [%s]"; locale)); } InputStream affixStream = null;