使用Elasticsearch Java API分析文本

时间:2018-07-03 08:21:05

标签: java elasticsearch

我正在使用Elastic的Java库6.2.4,并且正在尝试分析文本。我在docs中找不到任何提及方法,也没有在docs的6.3版本中提及它。我试图建立一个AnalyzerRequest,如下所示

 try(RestHighLevelClient client = 
     new RestHighLevelClient(RestClient.builder(new HttpHost(elasticsearchHost, elasticsearchPort, elasticsearchScheme)))) {

     AnalyzeRequest analyzeRequest = new AnalyzeRequest()
                                   .index(elasticsearchIndex)
                                   .analyzer("my_analyzer")
                                   .text("Some Text To Analyze);
} catch (IOException e) {
    log.error("Could not connect to elasticsearch", e);
}

但是我找不到如何使用它。 This的答案建议使用已弃用的TransportClient,因此我无法使用它,也找不到其他示例。

当我尝试研究RestHighLevelClient提供的内容时,我只发现了用于搜索,索引编制等的方法。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

analyze方法正在开发中,目标版本为6.4:https://github.com/elastic/elasticsearch/pull/31577

您可以使用PreBuiltTransportClient

Settings settings = ....;
TransportClient client = new PreBuiltTransportClient(settings);
AnalyzeRequest analyzeRequest = ...;
ActionFuture<AnalyzeResponse> analyzeResponse = client.admin().indices().analyze(analyzeRequest);

或者您可以使用“低级客户端”并发出自定义的休息请求: https://www.elastic.co/guide/en/elasticsearch/client/java-rest/6.2/java-rest-low-usage-requests.html https://www.elastic.co/guide/en/elasticsearch/reference/6.2/indices-analyze.html