【发布时间】:2015-08-06 16:52:40
【问题描述】:
我正在使用 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)
但我有 2 个问题,
我收到一个编译错误:ImmutableSettings.builder 类型中的方法 loadFromSource 不适用于参数 XContentBuilder
另外,我不知道如何将我的设置转换为这种格式。了解所有这些方法的文档在哪里? 我尝试阅读官方的 ElasticSearch JAVA API https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/search.html,但找不到任何有关设置分析器的信息。 我找到的所有相关内容都只是 REST API 的形式,而不是 Java API。
【问题讨论】:
-
那么,你想用java api添加设置吗?还是直接使用 REST ?
-
我想使用 java api 添加。
-
如果你能提供一个分析器的java api文档链接,那将非常有用。
标签: java indexing elasticsearch lucene analyzer