我正在尝试为我的某个属性创建一个multi_field,以使用后缀获取原始值
elasticClient.CreateIndex(IndexName.From<ResultModel>(),
index => index.Mappings(
mappings => mappings.Map<ResultModel>(
map => map.AutoMap().Properties(
properties => properties.String(
s => s.Name(e => e.Name.Suffix("raw")).Index(FieldIndexOption.NotAnalyzed)
)
)
)
)
);
然而,查看创建的索引,它被命名为raw
,没有字段名称的前缀。
对于NEST 2.0,文档有点粗略,我可以找到的唯一文档是序列化输出时的测试用例场景:
https://www.elastic.co/guide/en/elasticsearch/client/net-api/current/field-inference.html
任何人都知道如何在NEST 2.0中创建带后缀的这些multi_fields?
答案 0 :(得分:1)
在你的情况下,这将是:
var createIndexResponse = client.CreateIndex(IndexName.From<ResultModel>(),
index => index.Mappings(
mappings => mappings.Map<ResultModel>(
map => map.AutoMap().Properties(
properties => properties.String(
s => s.Name(e => e.Name)
.Index(FieldIndexOption.Analyzed)
.Fields(f => f.String(s2 => s2.Name("raw").Index(FieldIndexOption.NotAnalyzed)))
)
)
)
)
);
希望它有所帮助。