【发布时间】:2014-06-06 21:41:05
【问题描述】:
如何使用 Elasticsearch Nest API 重新创建以下索引?
这是包含映射的索引的 json:
{
"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"
}
}
}
}
}
这是我的尝试:
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"))
);
文档没有提及这方面的任何内容?
更新:
找到this 使用的帖子
var index = new IndexSettings()
然后使用字符串文字 json 添加分析。
index.Add("analysis", @"{json});
在哪里可以找到更多类似这样的示例,这是否有效?
【问题讨论】:
-
如果您不想处理 lambda 代码,stackoverflow.com/questions/29026007/… 的答案描述了如何将原始 json 传递给 ElasticClient 以创建索引。在某些用例中,这可能更容易或更灵活。
标签: elasticsearch indexing nest elasticsearch-mapping elasticsearch-analyzers