繁体   English   中英

如何在Nest中自动映射而无需写入elasticsearch索引?

[英]How to automap in Nest without writing to the elasticsearch index?

是否可以利用NEST 自动映射功能获取Nest属性和Type对象,而无需通过PUT映射和Create Index API将它们实际写入弹性索引中?

例如,我想自动映射此CLR类Company:

public class Company
{
    public string Name { get; set; }
}

并将弹性映射存储到以下变量中:

Nest.TypeMapping typeCo = null; // for the mapped Company type
Nest.IProperty propCoName = null;  // for the mapped Company Name property 

但不要将公司映射写入索引。

我可以写一个临时索引作为一种解决方法,但是我怀疑这是没有必要的。

使用elasticsearch 5.x和Nest 5。

根据您的实际需要,可以采取几种不同的方法

使用PropertyWalker

var walker = new PropertyWalker(typeof(Company), null);   
var properties = walker.GetProperties();

将提供通过自动映射推断出的IProperty类型。

使用TypeMappingDescriptor<T>

var descriptor = (ITypeMapping)new TypeMappingDescriptor<Company>()
    .AutoMap();

将提供IProperty在类型.Properties从自动映射推断,除了任何其它属性的属性ITypeMapping 需要在这里使用的描述,而不是TypeMapping因为描述符的.AutoMap()方法。 还需要强制转换为接口,因为已明确实现接口属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM