public void search3(Book book, int pagesize, int page) throws IOException {
ElasticsearchConfiguration esc = new ElasticsearchConfiguration();
esc.buildClient();
RestHighLevelClient client = esc.getRestHighLevelClient();
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
//
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
//
MatchPhraseQueryBuilder matchPhraseQueryBuilder = QueryBuilders.matchPhraseQuery("status", 0);
boolQueryBuilder.must(matchPhraseQueryBuilder);
//
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("publishTime");
rangeQueryBuilder.gte("2020-02-06 21:28:22");
rangeQueryBuilder.lte("2020-02-31 17:12:10");
boolQueryBuilder.must(rangeQueryBuilder);
// //
// WildcardQueryBuilder qb = QueryBuilders.wildcardQuery("title",
// "*你2*");
// boolQueryBuilder.must(qb);
//
sourceBuilder.from(0);
sourceBuilder.size(2); // 獲取記錄數,默認10
//
sourceBuilder.query(boolQueryBuilder);
sourceBuilder.sort("publishTime", SortOrder.DESC);
SearchRequest searchRequest = new SearchRequest(EsConsts2.INDEX_NAME);
searchRequest.source(sourceBuilder);
SearchResponse response = client.search(searchRequest);
System.out.println("search: " + JSON.toJSONString(response));
SearchHits hits = response.getHits();
SearchHit[] searchHits = hits.getHits();
System.out.println("**************size****************: " + hits.totalHits);
//
for (SearchHit hit : searchHits) {
System.out.println("info -> " + hit.getSourceAsString());
}
client.close();
esc.destroy();
}
就是能拿到記錄值 但是總數 始終為0
search: {"took":1,"timed_out":false,"_shards":{"total":1,"successful":1,"skipped":0,"failed":0},"hits":{"total":0,"max_score":null,"hits":[{"_index":"mylib","_type":"_doc","_id":"2","_score":null,"_source":{"number":"2","price":100,"province":"南京1000000","publishTime":"2020-02-07 19:47:41","status":0,"title":"你1000000"},"sort":[1581104861000]},{"_index":"mylib","_type":"_doc","_id":"164","_score":null,"_source":{"number":"164","price":100,"province":"南京164","publishTime":"2020-02-06 21:28:27","status":0,"title":"你164"},"sort":[1581024507000]}]}}
求大俠指點 總么樣才能拿到總數
uj5u.com熱心網友回復:
客戶端 是這樣寫的package com.wpool.common.test.es;
import org.apache.http.HttpHost;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.nio.client.HttpAsyncClientBuilder;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestClientBuilder;
import org.elasticsearch.client.RestHighLevelClient;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.FactoryBean;
import org.springframework.beans.factory.InitializingBean;
public class ElasticsearchConfiguration implements FactoryBean<RestHighLevelClient>, InitializingBean, DisposableBean {
private final static Logger logger = LoggerFactory.getLogger(ElasticsearchConfiguration.class);
private static final String host = "127.0.0.1";
private static final int port = 9200;
private static final String username = "";
private static final String password = "";
private RestHighLevelClient restHighLevelClient;
public RestHighLevelClient getRestHighLevelClient() {
return restHighLevelClient;
}
public void setRestHighLevelClient(RestHighLevelClient restHighLevelClient) {
this.restHighLevelClient = restHighLevelClient;
}
public void destroy() {
try {
if (restHighLevelClient != null) {
restHighLevelClient.close();
}
} catch (final Exception e) {
logger.info(e.getMessage());
}
}
public RestHighLevelClient getObject() throws Exception {
return restHighLevelClient;
}
public Class<RestHighLevelClient> getObjectType() {
return RestHighLevelClient.class;
}
public boolean isSingleton() {
return false;
}
public void afterPropertiesSet() throws Exception {
buildClient();
}
public void buildClient() {
final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(username, password));
RestClientBuilder builder = RestClient.builder(new HttpHost(host, port))
.setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {
return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
}
});
restHighLevelClient = new RestHighLevelClient(builder);
}
}
uj5u.com熱心網友回復:
同問,我也遇到了這個問題,樓主現在有解決嗎,我本地除錯發現有,但是部署線上沒有uj5u.com熱心網友回復:
可以看看這篇,https://blog.csdn.net/a754921384/article/details/102488322uj5u.com熱心網友回復:
你先將分頁去掉查詢試一下,如果不行你可以用head可視化工具查詢一下,如果同樣沒有記錄數,那就不是你代碼的原因轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/118836.html
標籤:Web 開發
上一篇:java.lang.NoClassDefFoundError: com/aventstack/extentreports/ExtentReporter
下一篇:匿名內部類不重為什么不會報錯?
