Jak odtworzyć poniższy indeks przy użyciu Elasticsearch Nest API?Tworzenie indeksu Nest
Oto json dla indeksu wraz z mapowaniem:
{
"settings": {
"analysis": {
"filter": {
"trigrams_filter": {
"type": "ngram",
"min_gram": 3,
"max_gram": 3
}
},
"analyzer": {
"trigrams": {
"type": "custom",
"tokenizer": "standard",
"filter": [
"lowercase",
"trigrams_filter"
]
}
}
}
},
"mappings": {
"data": {
"_all" : {"enabled" : true},
"properties": {
"text": {
"type": "string",
"analyzer": "trigrams"
}
}
}
}
}
Oto moja próba:
var newIndex = client.CreateIndexAsync(indexName, index => index
.NumberOfReplicas(replicas)
.NumberOfShards(shards)
.Settings(settings => settings
.Add("merge.policy.merge_factor", "10")
.Add("search.slowlog.threshold.fetch.warn", "1s")
.Add("mapping.allow_type_wrapper", true))
.AddMapping<Object>(mapping => mapping
.IndexAnalyzer("trigram")
.Type("string"))
);
Dokumentacja nie wspomina nic o tym?
UPDATE:
Znaleziony this słupek, który używa var index = new IndexSettings()
a następnie dodaje Analysis ze strun dosłownym JSON.
index.Add("analysis", @"{json});
Gdzie można znaleźć więcej przykładów takich jak ten i to działa?
Jeśli nie chcemy mieć do czynienia z kod lambda, odpowiedź na http://stackoverflow.com/questions/29026007/elasticsearch-nest-create-an-index-through-elasticclient-by-specifying-json/29068816#29068816 opisuje, jak przekazać surowy json do ElasticClient utworzyć indeks. W niektórych przypadkach może to być łatwiejsze lub bardziej elastyczne. – mcating