我有一个非常简单的要求,我需要基于为索引设置的默认分析器来获取搜索词的分析文本。
我正在使用分析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调用的支持。
让我知道您是否需要我的任何信息。
答案 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;
对我来说很好。