首页 > 解决方案 > Solr中的序列化/反序列化不一致

问题描述

我在 Solr 中有一堆文档,其中每个文档都是一个产品。每个产品都可以有一个价格列表,如下所示:

{ 
  "id": 1
  "name": "Product 1",
  "prices": [{"min":1,"max":100,"price":75}, {"min": 101, "max": 500, price: 50}]
}

然后问题是这个嵌套属性像这样存储在 Solr 中:

{
  "id": 1
  "name": "Product1"
  "prices.min": [1, 101]
  "prices.max": [100, 500]
  "prices.price": [75, 50]  
}

当我想反序列化 Solr 返回的 json 时,问题就来了,因为我的对象没有任何“prices.min”字段。那么,Solr 有什么方法可以使用与最初出现的格式相同的格式吗?我正在使用 rust 和 serde 与 Solr 交谈:

#[derive(Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub struct SolrProduct {
    id: u64,
    name: String,
    prices: HashSet<PriceRange>
}

#[derive(Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub struct PriceRange {
    min: usize,
    max: usize,
    price: Option<Decimal>,
}

标签: rustsolrserde

解决方案


推荐阅读