ElasticSearchjava sdk 并没有对ES 的错误进行一个细分导致我们在java程序里拿到的错误都是 Elasticsearch exception [type=search_phase_execution_exception, reason=all shards failed] ,
debug 打印sourceBuilder.toString() ,然后手动到 ES里执行搜索 ,这时会报出准确的错误
我的是
"root_cause": [
{
"type": "query_shard_exception",
"reason": "failed to create query: [nested] failed to find nested object under path [cs_feedback_transfer_task_count_email.values]",
"index_uuid": "QJFK5swtRwGVLufgtgfbig",
"index": "wfmindex"
}
],
检查发现是NestedQueryBuilder的path写错了
NestedQueryBuilder nestedQueryBuilder = new NestedQueryBuilder("cs_email",
QueryBuilders.rangeQuery("cs_email.values").gte(200), ScoreMode.None);