是否可以利用NEST自动映射功能来获取Nest Property和Type对象,而无需通过PUT映射和创建索引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。
根据你的需要你可以采取几种不同的方法
var walker = new PropertyWalker(typeof(Company), null);
var properties = walker.GetProperties();
将提供通过自动映射推断的IProperty
类型。
var descriptor = (ITypeMapping)new TypeMappingDescriptor<Company>()
.AutoMap();
将在中提供
属性,以及IProperty
类型。从自动映射推断出的属性ITypeMaps
的任何其他属性。需要在这里使用描述符而不是TypeMaps
,因为描述符具有。AutoMap()
方法。还需要转换为接口,因为接口属性是显式实现的。