Val*_*Val 0 solr mongodb solrnet
我有一个 C# 类,它有一个 ObjectId 类型的 id 字段:
[BsonId]
[SolrUniqueKey("id")]
public ObjectId Id { get; set; }
Run Code Online (Sandbox Code Playgroud)
在 Solr 中,模式将 id 定义为:
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
Run Code Online (Sandbox Code Playgroud)
当尝试从 Solr 中提取对象时,它会失败,因为它无法将字符串 id 转换为 MongoDB ObjectId。有没有人可以在不更改 SolrNet 源的情况下轻松解决此问题?
对于任何感兴趣的人,下面是我在不修改 SolrNet 源代码的情况下最终完成的方法。
我在名为 IdAsString 的类中添加了一个附加属性,并将其设置为“BsonIgnore”,以便它不会存储在 MongoDB 中,但是我使用该字段将其映射到 Solr 的 id 字段:
[BsonId]
public ObjectId Id { get; set; }
[BsonIgnore]
[SolrUniqueKey("id")]
public string IdAsString
{
get { return Id.ToString(); }
set { Id = ObjectId.Parse(value); }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1881 次 |
| 最近记录: |