languagetool-org/languagetool · error · RuntimeException
Could not build Lucene query for '" + patternToken + "' and
Error message
Could not build Lucene query for '" + patternToken + "' and '" + termStr + "'
What it means
Search-index guard in getTermQueryOrNull: synthesizing word forms for the token (to expand lemma matching via the language's Synthesizer) failed, so a Lucene term query for that token cannot be built.
Source
Thrown at languagetool-wikipedia/src/main/java/org/languagetool/dev/index/PatternRuleQueryBuilder.java:175
/*
This is simpler, but leads to problem with e.g. German rules ZEITLICH_SYNCHRON and GEWISSEN_SUBST:
Term lemmaQueryTerm = getQueryTerm(element, LEMMA_PREFIX, termStr, "");
Query query = new TermQuery(lemmaQueryTerm);
return new BooleanClause(query, BooleanClause.Occur.MUST);
*/
Synthesizer synthesizer = language.getSynthesizer();
if (synthesizer != null) {
try {
String[] synthesized = synthesizer.synthesize(new AnalyzedToken(termStr, null, termStr), ".*", true);
Query query;
if (synthesized.length == 0) {
query = new TermQuery(termQueryTerm);
} else {
query = new RegexpQuery(getTermQueryTerm(StringUtils.join(synthesized, "|")));
}
return new BooleanClause(query, BooleanClause.Occur.MUST);
} catch (IOException e) {
throw new RuntimeException("Could not build Lucene query for '" + patternToken + "' and '" + termStr + "'", e);
}
}
return null;
} else if (patternToken.isRegularExpression()) {
termQuery = getRegexQuery(termQueryTerm, termStr, patternToken);
} else {
termQuery = new TermQuery(termQueryTerm);
}
return new BooleanClause(termQuery, BooleanClause.Occur.MUST);
}
// regex syntax not supported, but doesn't matter - remove or simplify it:
private String simplifyRegex(String regex) {
return regex.replace("(?:", "(").replace("\\d", "[0-9]").replace("\\w", "[a-zA-Z_0-9]");
}
// the new and fast Regex query of Lucene doesn't support full Java regex syntax:
private boolean needsSimplification(String regex) {View on GitHub (pinned to 2e990059ce)
Solutions
- Check the language's synthesizer dictionary is available and consistent
- Use a plain term instead of a lemma on that element
- Skip the rule for index-based checking
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at languagetool-wikipedia/src/main/java/org/languagetool/dev/index/PatternRuleQueryBuilder.java:175 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of languagetool-org/languagetool@2e990059ce (2026-09-06).
Data as JSON: /api/errors/9e4060350b4c4acb.
Report an issue: GitHub.