基于自定义功能的Solr构面

时间:2019-07-05 13:11:27

标签: solr facet

我正在尝试获取具有随时间变化的值的方面。这些方面应类似于:很旧

确定文档的状态:它是还是很旧都是基于类似下方:

IF max(document.date1,document.date2)-今天> NUMBER_OF DAYS_FOR_VERY_OLD为VERY_OLD ELSE IF max(document.date1,document.date2)-今日> NUMBER_OF DAYS_FOR_OLD为旧 ELSE是新的。

NUMBER_OF DAYS_FOR_OLD和NUMBER_OF DAYS_FOR_VERY_OLD实际上取决于另一个文档字段( document.type ),因此需要计算

我试图通过实现 ValueSource ValueSourceParser (如此处https://medium.com/@devchaitu18/sorting-based-on-a-custom-function-in-solr-c94ddae99a12)创建一个自定义函数(在Java中)。这对于通过&fl = my_function(date1,date2,type)这样的查询获取计算结果的效果很好。但这似乎在各个方面都行不通。

有什么办法可以做到这一点?

我看到的唯一另一个选择是在索引编制时向文档添加更多日期字段: date_when_doc_becomes_old,date_when_doc_becomes_very_old

然后在查询时使用 facet.range facet.pivot 的组合。缺点是,每当添加新的状态(例如 very_very_old )时,我都需要添加一个新字段并为所有内容重新编制索引。而且,方面查询比如果我只能编写 facet.query = my_function(date1,date2,type)

0 个答案:

没有答案