使用JEST进行分析api调用

时间:2019-01-04 06:06:59

标签: java elasticsearch jest elasticsearch-analyzers

我有一个非常简单的要求,我需要基于为索引设置的默认分析器来获取搜索词的分析文本。

我正在使用分析API https://www.elastic.co/guide/en/elasticsearch/reference/1.7/indices-analyze.html来获取令牌,例如 apple 之类的单词,银河将返回 appl 并且 galaxi english 是我的索引的默认分析器设置。

我可以使用KOPF插件和curl请求获得它。现在,我要以编程方式进行操作。

我正在使用1.7版的ES和1.0.3版的 JEST 库。我查看了 JEST 库的各种文件,但是找不到对进行 Analyze api调用的支持。

让我知道您是否需要我的任何信息。

1 个答案:

答案 0 :(得分:1)

您可以在下面的代码中。

        List<String> tokens = new ArrayList<>();
        Action analyze = new Analyze.Builder().source("apple").build();
        JestResult result = client.execute(analyze);
        if (result.isSucceeded()) {
            JsonElement tokenElement = result.getJsonObject().get("tokens");
            if (tokenElement != null) {
                JsonArray tokens = tokenElement.getAsJsonArray();
                for (int i = 0; i < tokens.size(); i++) {
                    tokens.add(tokens.get(i).getAsJsonObject().get("token").getAsString());
                }
            }
        }
        return tokens;

对我来说很好。