有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用Elasticsearch Java API分析文本

我正在使用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) 个答案

  1. # 1 楼答案

    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);
    

    或者,您可以使用低级别客户端并发出自定义rest请求: 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