gpt4 book ai didi

java - elasticsearch 分词器设置

转载 作者:行者123 更新时间:2023-12-02 06:54:27 26 4
gpt4 key购买 nike

我想将以下状态更改为JAVA。

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("tokenizer") 之前缺少 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 - elasticsearch 分词器设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17568255/

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