我正在处理一个非常利基的需求,以在 Solr 中对关系结构进行建模,并认为自定义多域将是解决我的问题的最合适的解决方案。简而言之,索引中的每条记录都将有一些禁运日期和到期日期,以便将内容视为“可用”。这些日期与另一种分类(假设按设备)分组,因此,例如,索引中的任何给定项目可能在两个日期之间可供移动用户使用,但仅在另外两个日期之间可供桌面用户使用。
与货币和纬度类型非常相似,我会将值索引为逗号分隔的列表,表示每个可用性窗口,例如:
mobile,2013-09-23T00:00:00Z,2013-09-30T00:00:00Z
因此,单个索引记录可能看起来像
{
id: "1234",
text: ["foobarbaz"],
availability: [
"mobile,2013-09-23T00:00:00Z,2013-09-30T00:00:00Z",
"pc,2013-09-22T00:00:00Z,2013-09-30T00:00:00Z"
]
}
自定义类型将完成解析传入值并相应地存储它的工作。这是一个可行的解决方案吗?我将如何处理查询时所需的自定义逻辑以按设备过滤,然后确保 NOW 在提供的日期内?
到目前为止,我的尝试一直基于 Currency 字段类型,但现在我将其拨回为仅将字符串存储在未解析状态。如果我能在使用多域功能之前证明我想要的过滤是可能的,那么我就会知道它是否值得继续。
是否有其他人有任何编写自定义(多边形)字段的经验,或者做任何类似于我正在做的事情?
谢谢!