我正在使用elasticsearch 1.5.2,我希望有以下设置:
"settings": {
"analysis": {
"filter": {
"filter_shingle": {
"type": "shingle",
"max_shingle_size": 2,
"min_shingle_size": 2,
"output_unigrams": false
},
"filter_stemmer": {
"type": "porter_stem",
"language": "English"
}
},
"tokenizer": {
"my_ngram_tokenizer": {
"type": "nGram",
"min_gram": 1,
"max_gram": 1
}
},
"analyzer": {
"ShingleAnalyzer": {
"tokenizer": "my_ngram_tokenizer",
"filter": [
"standard",
"lowercase",
"filter_stemmer",
"filter_shingle"
]
}
}
}
}
我应该在哪里添加它们?我是说在创建索引之前还是之后?
通过网上搜索,我找到了一些方法,比如
client.admin().indices().prepareCreate("temp_index").setSettings(ImmutableSettings.settingsBuilder().loadFromSource((jsonBuilder()
.startObject()
.startObject("analysis")
.startObject("analyzer")......and so on)
但我有两个问题,
我得到一个编译错误:immutablesettings.builder类型中的loadfromsource方法不适用于参数xcontentbuilder
另外,我不知道如何将我的设置转换成这种格式。关于这些方法的文档在哪里?我试着阅读官方的elasticsearch javaapihttps://www.elastic.co/guide/en/elasticsearch/client/java-api/current/search.html 但我找不到任何关于设置分析仪的信息。我找到的所有相关内容都只是restapi的形式,而不是javaapi。
1条答案
按热度按时间u0sqgete1#
XContentBuilder
有特定的语法,可以用来创建一个json对象。你可以跟着https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/index_.html#helpers 将字符串转换为
XContentBuilder
格式。如果在应用程序中加载了相同的字符串。你可以做到的。
就行了。
如果您想知道json在xcontentbuilder中是什么样子的,那么就在这里,