Я использую 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 проблемы,
Я получаю ошибку компиляции: метод loadFromSource в типе ImmutableSettings.builder неприменим для аргументов XContentBuilder
Кроме того, я не знаю, как преобразовать мои настройки в этот формат. И где документация, чтобы узнать обо всех этих методах? Я попытался прочитать официальный JAVA API ElasticSearch https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/search.html, но мне не удалось найти ничего о настройке анализаторов. Весь связанный контент, который я нахожу, представлен только в виде REST API, а не в Java API.