elasticsearch matchPhraseQuery zeroTermsQuery异常
ES 的版本是6.2.2的版本。
es版本 , 6.4.3 也会有这个错。
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>6.4.2</version>
</dependency>
出现这个异常,使用的条件查询:
queryBuilder.must(QueryBuilders.matchPhraseQuery("cust", query.getCust()));
使用前缀匹配就没问题:
queryBuilder.must(QueryBuilders.matchPhrasePrefixQuery("loan", query.getLoan()));
源码分析:
org.elasticsearch.index.query.MatchPhraseQueryBuilder
引入的es api 大于这个版本就会加上zeroTermsQuery 这个条件,但是低版本的ES服务端不支持这个参数,所以报错。
目前没有什么解决办法,只能换成前缀匹配。
试过降低 es api版本,但是均报错。只有6.4.2 及以上api相对稳定。