有没有办法创建索引并使用Java API指定自定义分析器?它支持在创建索引时添加映射,但是如果不通过HTTP PUT发送JSON,我找不到这样的方法:
curl -XPUT localhost:9200/twitter?pretty=true -d '{
"analysis": {
"analyzer": {
"steak" : {
"type" : "custom",
"tokenizer" : "standard",
"filter" : ["snowball", "standard", "lowercase"]
}
}
}
}'
Run Code Online (Sandbox Code Playgroud)
我可以使用JSONBuilder构建这样的查询,但我找不到API在哪里运行它,CreateIndexRequest没有我可以使用的任何东西,也没有client.admin().indices(),据我所知.这样做的正确方法是什么?
imo*_*tov 28
您可以使用分析器设置client.admin().indices().prepareCreate("twitter").setSettings(...).有几种方法可以构建设置.您可以从文本,地图甚至使用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();
Run Code Online (Sandbox Code Playgroud)