Java elasticsearch标记器设置
我想把下面的状态转换成JAVAJava elasticsearch标记器设置,java,
elasticsearch,Java,
elasticsearch,我想把下面的状态转换成JAVA curl -XPUT 'localhost:9200/test' -d ' { "settings" : { "analysis" : { "analyzer" : { "my_ngram_analyzer" : { "tokenizer" : "my_ngram_tokenizer" }
curl -XPUT 'localhost:9200/test' -d '
{
"settings" : {
"analysis" : {
"analyzer" : {
"my_ngram_analyzer" : {
"tokenizer" : "my_ngram_tokenizer"
}
},
"tokenizer" : {
"my_ngram_tokenizer" : {
"type" : "nGram",
"min_gram" : "2",
"max_gram" : "3",
}
}
}
}
}'
我试图通过以下方式解决这个问题:
client.admin().indices().prepareCreate("test")
.setSettings(ImmutableSettings.settingsBuilder().loadFromSource(jsonBuilder()
.startObject()
.startObject("analysis")
.startObject("analyzer")
.startObject("my_ngram_analyzer")
.field("tokenizer", "my_ngram_tokenizer")
.endObject()
.startObject("tokenizer")
.field("type", "nGram")
.field("min_gram", "2")
.field("max_gram","3")
.endObject()
.endObject()
.endObject()
.endObject().string()))
.execute().actionGet();
不幸的是,我在jsonBuilder()上遇到了一个错误
请让我知道。
提前谢谢 您的startObject()
/endObject()
似乎与您发布的JSON版本不一致
我认为.startObject(“标记器”)
之前缺少endObject()
。我会这样做:
client.admin().indices().prepareCreate("test")
.setSettings(ImmutableSettings.settingsBuilder().loadFromSource(jsonBuilder()
.startObject()
.startObject("analysis")
.startObject("analyzer")
.startObject("my_ngram_analyzer")
.field("tokenizer", "my_ngram_tokenizer")
.endObject()
.endObject()
.startObject("tokenizer")
.field("type", "nGram")
.field("min_gram", "2")
.field("max_gram","3")
.endObject()
.endObject()
.endObject().string()))
.execute().actionGet();
如果不起作用,请提供完整的错误堆栈跟踪。这会很有帮助。您是否尝试过使用Java?如果是,你遇到了什么问题?@Soo如果答案有用,你能接受吗?说声谢谢就更好了;)