如何使用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"))
);
该文档没有提及任何内容?
更新:
找到了使用此帖子 var index = new IndexSettings()
然后添加带有字符串文字json的Analysis。
index.Add("analysis", @"{json});
在哪里可以找到更多类似的例子,这行得通吗?
您可以通过两种主要方法来完成此操作,如Nest Create
Index文档中所述
:
这是直接将索引设置声明为Fluent
Dictionary条目的方法。就像您在上面的示例中所做的一样。我在本地进行了测试,它会生成与您的JSON匹配的索引设置。
var response = client.CreateIndex(indexName, s => s
.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)
.Add("analysis.filter.trigrams_filter.type", "nGram")
.Add("analysis.filter.trigrams_filter.min_gram", "3")
.Add("analysis.filter.trigrams_filter.max_gram", "3")
.Add("analysis.analyzer.trigrams.type", "custom")
.Add("analysis.analyzer.trigrams.tokenizer", "standard")
.Add("analysis.analyzer.trigrams.filter.0", "lowercase")
.Add("analysis.analyzer.trigrams.filter.1", "trigrams_filter")
)
.AddMapping<Object>(mapping => mapping
.Type("data")
.AllField(af => af.Enabled())
.Properties(prop => prop
.String(sprop => sprop
.Name("text")
.IndexAnalyzer("trigrams")
)
)
)
);
请注意,NEST还包括使用强类型类创建索引设置的功能。如果我有时间进行研究,我将在稍后发布一个示例。
另请注意,在NEST 7.x中CreateIndex
已删除方法。使用Indices.Create
nottead。这是例子。
_client.Indices
.Create(indexName, s => s
.Settings(se => se
.NumberOfReplicas(replicas)
.NumberOfShards(shards)
.Setting("merge.policy.merge_factor", "10")));
源码 .. index:: 创建, 索引, 测试
用于为表创建索引。 索引是一组指针,它指的是MDC或ITC表中的表块中的行,XML存储对象中的XML数据,这些XML数据在逻辑上按一个或多个键的值排序。 索引用于提高查询数据的速度以及有效地对数据进行聚类和分区。 索引可以增强视图操作的性能。具有唯一索引的表可以包含具有唯一键的行。 可以根据表要求创建不同类型的索引。 索引类型 唯一和非唯一索引 群集和非群集索引 单击create index,它将
命令用于在用户指定的列上创建一个索引。 如果您选择索引的列已存在数据,则Cassandra会在“”语句执行后在指定数据列上创建索引。 语法: 创建索引的规则 由于主键已编入索引,因此无法在主键上创建索引。 在Cassandra中,不支持集合索引。 没有对列进行索引,Cassandra无法过滤该列,除非它是主键。 示例: 让我们举个例子来演示如何在列上创建索引。 在这里,我们为表“”中的“”列创建一
主要内容:基本语法,创建普通索引,创建唯一索引创建索引是指在某个表的一列或多列上建立一个索引,可以提高对表的访问速度。创建索引对 MySQL 数据库的高效运行来说是很重要的。 基本语法 MySQL 提供了三种创建索引的方法: 1) 使用 CREATE INDEX 语句 可以使用专门用于创建索引的 CREATE INDEX 语句在一个已有的表上创建索引,但该语句不能创建主键。 语法格式: CREATE <索引名> ON <表名> (<列名> [
CreateIndexes 根据struct中的tag来创建索引 CreateUniques 根据struct中的tag来创建唯一索引
本文介绍创建和管理索引的基本 SQL 操作和规范。 创建和管理索引 SQL 语句参阅: CREATE INDEX ADD INDEX DROP INDEX RENAME INDEX SHOW INDEXES [FROM|IN] 索引命名规范 唯一索引:uk_[表名称简写]_[字段名简写] 普通索引:idx_[表名称简写]_[字段名简写] 多单词组成的 column_name,取尽可能代表意义的缩写