C# Solr返回400
这是对象模型。当我尝试将产品提交给Solr时,返回C# Solr返回400,c#,solr,solrnet,C#,Solr,Solrnet,这是对象模型。当我尝试将产品提交给Solr时,返回未知字段loca public class Product { [SolrUniqueKey("id")] public string Id { get; set; } [SolrField("manu")] public string Manufacturer { get; set; } [SolrField("cat")] // cat is a multiValued field publ
未知字段loca
public class Product
{
[SolrUniqueKey("id")]
public string Id { get; set; }
[SolrField("manu")]
public string Manufacturer { get; set; }
[SolrField("cat")] // cat is a multiValued field
public ICollection<string> Categories { get; set; }
[SolrField("price")]
public decimal Price { get; set; }
[SolrField("inStock")]
public bool InStock { get; set; }
[SolrField("loca")]
public Location Location { set; get; }
}
public class Location
{
[SolrField("zipcode")]
public int Zip { set; get; }
[SolrField("country")]
public string Country { set; get; }
}
公共类产品
{
[SolrUniqueKey(“id”)]
公共字符串Id{get;set;}
[索尔菲尔德(“曼努”)]
公共字符串制造商{get;set;}
[SolrField(“cat”)]//cat是一个多值字段
公共ICollection类别{get;set;}
[索尔菲尔德(“价格”)]
公共十进制价格{get;set;}
[SolrField(“inStock”)]
公共bool InStock{get;set;}
[索尔菲尔德(“loca”)]
公共位置位置{set;get;}
}
公共类位置
{
[索尔菲尔德(“zipcode”)]
公共int Zip{set;get;}
[索尔菲尔德(“国家”)]
公共字符串国家{set;get;}
}
嵌套类对solr合法吗
为什么它不能存储?当我移除[SolrField(“loca”)]
时,它工作正常
如何存储此类类?不能在Solr中执行嵌套类。因此,您需要将位置信息展平到Product类中。但是,您可以根据需要将数据映射到Solr中或映射到Solr中,从而将其表示为应用程序中的嵌套类 例如,更新Solr模式以存储loca_zipcode和loca_country字段,然后将它们映射到新的SolrProduct类中,定义如下:
public class SolrProduct
{
[SolrUniqueKey("id")]
public string Id { get; set; }
[SolrField("manu")]
public string Manufacturer { get; set; }
[SolrField("cat")] // cat is a multiValued field
public ICollection<string> Categories { get; set; }
[SolrField("price")]
public decimal Price { get; set; }
[SolrField("inStock")]
public bool InStock { get; set; }
[SolrField("loca_zip")]
public int Zip { set; get; }
[SolrField("loca_country")]
public string Country { get; set; }
}
公共类SolrProduct
{
[SolrUniqueKey(“id”)]
公共字符串Id{get;set;}
[索尔菲尔德(“曼努”)]
公共字符串制造商{get;set;}
[SolrField(“cat”)]//cat是一个多值字段
公共ICollection类别{get;set;}
[索尔菲尔德(“价格”)]
公共十进制价格{get;set;}
[SolrField(“inStock”)]
公共bool InStock{get;set;}
[SolrField(“loca_zip”)]
公共int Zip{set;get;}
[索尔菲尔德(“失地国”)]
公共字符串国家{get;set;}
}
然后,您可以使用类似这样的方法将SolrProduct
展平类映射到您的产品
类和嵌套的位置
类
另一种选择是在Solr中使用,并在SolrNet中使用字典支持动态映射。有关更多详细信息和示例,请参见SolrNet wiki部分。我明白了,没关系。我会的。谢谢你的回答。我有点希望索尔能为我做这件事。:)