微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用RestHighLevelClient

如何解决使用RestHighLevelClient

我要索引的JSON字段之一是形式为“ 2000-01-01”的字符串。

建立索引正常,但是查询操作失败,出现search_phase_execution_exception,原因=所有分片均失败。

索引:

IndexRequest request = new IndexRequest("testIndex");
request.source(jsonObject,XContentType.JSON);
request.type("text");
try (RestHighLevelClient client =         RestClients.create(ClientConfiguration.builder().connectedTo(esHostPort).build()).rest()) {
        client.index(request,RequestOptions.DEFAULT);

}

查询

SearchSourceBuilder builder = new         SearchSourceBuilder().postFilter(QueryBuilders.multiMatchQuery(queryString,searchFields));
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JavaTimeModule());
mapper.`enter code here`disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);

try (RestHighLevelClient client = RestClients.create(ClientConfiguration.builder().connectedTo(esHostPort).build()).rest()) {
SearchHit[] searchHits = client.search(new     SearchRequest().searchType(SearchType.DFS_QUERY_THEN_FETCH).source(builder),RequestOptions.DEFAULT).getHits().getHits();
resp = Arrays.stream(searchHits).map(hit -> {
try {
        return mapper.readValue(hit.getSourceAsstring(),QueryResponse.class);
    } catch (IOException e) {
        throw new RuntimeException(e);
    }
    }).collect(Collectors.toList());
}

当我省略日期字段时,一切进展顺利,因此它看起来与日期检测有关,我不知道如何在RestHighLevelClient中禁用它。

谢谢,欧内斯特

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。