Java 使用 RestHighLevelClient 调用慢

2020-04-28 14:07:54 +08:00
 1406075864

直接使用 postman 调用 用时一秒

http://106.13.148.210:9200/_search
{
  "query": {
    "match": {
      "book_id": {
        "query": 87,
        "operator": "OR",
        "prefix_length": 0,
        "max_expansions": 50,
        "fuzzy_transpositions": true,
        "lenient": false,
        "zero_terms_query": "NONE",
        "auto_generate_synonyms_phrase_query": true,
        "boost": 1
      }
    }
  },
  "size": 500
}

使用 java 代码 8 秒多


    /*    SearchRequest searchRequest = new SearchRequest("web_book_chapter");
        SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
        MatchQueryBuilder matchQueryBuilder = QueryBuilders.matchQuery("book_id", 48);
        //  matchQueryBuilder.
        sourceBuilder.query(matchQueryBuilder);

        sourceBuilder.size(200);
        System.out.println(sourceBuilder.toString());
        sourceBuilder.timeout(new TimeValue(60, TimeUnit.SECONDS));
        searchRequest.source(sourceBuilder);
        long startTime=System.currentTimeMillis();
        try {


            SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
            long endTime=System.currentTimeMillis();
            System.out.println("程序运行时间: "+(endTime - startTime)+"ms");
            SearchHits hits = searchResponse.getHits();
            SearchHit[] searchHits = hits.getHits();
            for (SearchHit hit : searchHits) {
                String sourceAsString = hit.getSourceAsString();
                BookChapterModel bookChapterModel = JSON.parseObject(sourceAsString, BookChapterModel.class);
                list.add(bookChapterModel);
            }

        }catch (Exception e){
            e.printStackTrace();
        }
        
        
            @Bean
    public RestHighLevelClient restHighLevelClient(){
        long startTime=System.currentTimeMillis();
        RestHighLevelClient restHighLevelClient = new RestHighLevelClient(
                RestClient.builder(
                        new HttpHost("106.13.148.210", 9200,"http")
                )
        );

        long endTime=System.currentTimeMillis();
        System.out.println("初始化客户端时间: "+(endTime - startTime)+"ms");
        return restHighLevelClient;
    }
2947 次点击
所在节点    问与答
6 条回复
wei672520619
2020-07-10 10:28:40 +08:00
老铁,问题解决了么,我也遇到这个问题了,请指教一下
slleong
2020-07-10 10:32:07 +08:00
巧了,我也遇到了,楼主,楼上解决了也回一下
ztianyijiu1
2020-07-10 17:57:48 +08:00
@slleong 把 sourceBuilder.toString 打印出来,对比下有没有不同,如果完全一样还是这种情况,就放弃吧
1406075864
2020-09-07 08:46:06 +08:00
我把配置里的外网地址改成 localhost:9300 就好了
1406075864
2020-09-07 08:46:32 +08:00
我把配置里的外网地址改成 localhost:9300 就好了 ,
1406075864
2020-09-07 08:47:59 +08:00
具体是什么问题没有分析出来 如果做 es 的集群不知道会不会还出问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/666915

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX