gpt4 book ai didi

elasticsearch - 使用 Java API 定义自定义 ElasticSearch Analyzer

转载 作者:行者123 更新时间:2023-11-29 02:43:34 24 4
gpt4 key购买 nike

有没有办法使用 Java API 创建索引并指定自定义分析器?它支持在创建索引时添加映射,但如果不通过 HTTP PUT 发送 JSON,我找不到一种方法来做这样的事情:

curl -XPUT localhost:9200/twitter?pretty=true -d '{
"analysis": {
"analyzer": {
"steak" : {
"type" : "custom",
"tokenizer" : "standard",
"filter" : ["snowball", "standard", "lowercase"]
}
}
}
}'

我可以使用 JSONBuilder 构建这样的查询,但我在 API 中找不到运行它的位置,CreateIndexRequest 没有任何我可以使用的东西, 也没有client.admin().indices(),据我所知。执行此操作的正确方法是什么?

最佳答案

您可以使用 client.admin().indices().prepareCreate("twitter").setSettings(...) 设置分析器。有几种build设置的方法。您可以从文本、 map 加载它们,如果需要的话,甚至可以使用 jsonBuilder:

client.admin().indices().prepareCreate("twitter")
.setSettings(Settings.settingsBuilder().loadFromSource(jsonBuilder()
.startObject()
.startObject("analysis")
.startObject("analyzer")
.startObject("steak")
.field("type", "custom")
.field("tokenizer", "standard")
.field("filter", new String[]{"snowball", "standard", "lowercase"})
.endObject()
.endObject()
.endObject()
.endObject().string()))
.execute().actionGet();

关于elasticsearch - 使用 Java API 定义自定义 ElasticSearch Analyzer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6275727/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com