'CreateIndexDescriptor'不包含'AddMapping'的定义

时间:2016-05-23 12:41:02

标签: c# elasticsearch elasticsearch-net

我是Elasticsearch的初学者。在执行类似https://msdn.microsoft.com/en-us/magazine/dn904674.aspx的示例应用程序时,它在

中显示错误
public void CreateMarketingIndex()
{
 this.client.CreateIndex("marketing", c =>.AddMapping<MarketingDocument>
     (m => m.Properties(ps => ps.Attachment
       (a => a.Name(o => o.Document)
         .TitleField(t => t.Name(x => x.Name).TermVector(TermVectorOption.WithPositionsOffsets))))));
} 
  

'CreateIndexDescriptor'不包含'AddMapping'的定义   没有扩展方法'AddMapping'接受第一个参数   可以找到类型'CreateIndexDescriptor'(你错过了使用   指令或程序集引用?)

我错过了任何参考资料。 我引用了Elasticsearch.net和Nest

2 个答案:

答案 0 :(得分:2)

我认为AddMapping可能是旧版本的Nest客户端。我一直在使用Mappings。尝试这样的事情:

this.client.CreateIndex("marketing", c => c
    .Mappings(md => md
        .Map<MarketingDocument>(m => m.Properties(ps...

答案 1 :(得分:1)

你可以这样做:

var descriptor = new CreateIndexDescriptor(mIndexName)
     .Mappings(x => x.Map<Model>(m => m.AutoMap()));

或没有对象类型

var descriptor = new CreateIndexDescriptor(mIndexName)
     .Mappings(x => x.Map(model, m => m.AutoMap()));