elastic/elasticsearch · error · IllegalArgumentException
cannot specify both `keywords_pattern` and `keywords` or `ke
Error message
cannot specify both `keywords_pattern` and `keywords` or `keywords_path`
What it means
Error "cannot specify both `keywords_pattern` and `keywords` or `keywords_path`" thrown in elastic/elasticsearch.
Source
Thrown at modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/KeywordMarkerTokenFilterFactory.java:56
* the settings include {@code keywords_pattern}, which contains the regular expression
* to match against.
*/
public class KeywordMarkerTokenFilterFactory extends AbstractTokenFilterFactory {
private final CharArraySet keywordLookup;
private final Pattern keywordPattern;
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;
}
View on GitHub (pinned to db6a809a66)
When it happens
Trigger: Thrown at modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/KeywordMarkerTokenFilterFactory.java:56 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/71e2d424b96e2eb8.
Report an issue: GitHub.