尝试使用Java高级REST客户端查询长类型时出现问题

时间:2019-08-30 17:31:33

标签: java elasticsearch

我正在使用Elasticsearch Java高级REST客户端,尝试按Long类型值查询文档。 我正在尝试搜索包含数字值的文档:{“ productId”:}。 每当我搜索一个int值时,我都会得到期望值,但是如果数字是Long类型,我总会得到0次点击。

我尝试使用MatchQueryBuilder和TermQueryBuilder进行查询(我相信TermQueryBuilder在这里是正确的选择)

SearchSourceBuilder source = new SearchSourceBuilder(); 
SearchRequest request = new SearchRequest(); 
TermQueryBuilder query = new TermQueryBuilder("productId",8317883178163363000L);
source.query(query); 
request.source(source); 
SearchResponse response = this.client.search(request, RequestOptions.DEFAULT);
SearchHits hits = response.getHits();

如果我搜索少于10个数字(int)的任何值,我会得到预期的结果。但是,如果我搜索的时间超过该时间,则会得到0条结果。

1 个答案:

答案 0 :(得分:0)

考虑到您已经对Elastic进行了正确配置,并且对每个内容都执行了良好的索引编制(Elastic具有此类数据)

尝试检查索引(文档)值,我使用elastic extension of chrome,也许productId的值为'8317883178163363000'而不是'8317883178163363000L'。 如果没有很多索引,请尝试获取所有y搜索值。