elastic/elasticsearch · error · IllegalArgumentException
keyword filter requires either `keywords`, `keywords_path`,
Error message
keyword filter requires either `keywords`, `keywords_path`, or `keywords_pattern` to be configured
What it means
Error "keyword filter requires either `keywords`, `keywords_path`, or `keywords_pattern` to be configured" thrown in elastic/elasticsearch.
Source
Thrown at modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/KeywordMarkerTokenFilterFactory.java:63
private final AnalysisMode analysisMode;
KeywordMarkerTokenFilterFactory(IndexSettings indexSettings, Environment env, String name, Settings settings) {
super(name);
boolean ignoreCase = settings.getAsBoolean("ignore_case", false);
String patternString = settings.get("keywords_pattern");
if (patternString != null) {
// a pattern for matching keywords is specified, as opposed to a
// set of keyword strings to match against
if (settings.get("keywords") != null || settings.get("keywords_path") != null) {
throw new IllegalArgumentException("cannot specify both `keywords_pattern` and `keywords` or `keywords_path`");
}
keywordPattern = Pattern.compile(patternString);
keywordLookup = null;
} else {
Set<?> rules = Analysis.getWordSet(env, settings, "keywords");
if (rules == null) {
throw new IllegalArgumentException(
"keyword filter requires either `keywords`, `keywords_path`, " + "or `keywords_pattern` to be configured"
);
}
// a set of keywords (or a path to them) is specified
keywordLookup = new CharArraySet(rules, ignoreCase);
keywordPattern = null;
}
boolean updateable = settings.getAsBoolean("updateable", false);
this.analysisMode = updateable ? AnalysisMode.SEARCH_TIME : AnalysisMode.ALL;
}
@Override
public AnalysisMode getAnalysisMode() {
return this.analysisMode;
}
@Override
public TokenStream create(TokenStream tokenStream) {View on GitHub (pinned to db6a809a66)
When it happens
Trigger: Thrown at modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/KeywordMarkerTokenFilterFactory.java:63 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of elastic/elasticsearch@db6a809a66 (2026-08-12).
Data as JSON: /api/errors/34aee2d38658ee82.
Report an issue: GitHub.