1

我不确定如何处理以下问题。所以我希望在这里得到一些想法或类似的东西。我正在使用带有 solr 的 lucene。每个文档(在 lucene 中被索引)都有一个日期字段和一个主题字段(带有一些关键字)

通过使用分面搜索,我能够计算每个关键字在特定日期的频率。

示例 1(伪代码):

1st search where date=today:
web=>70
apple=>35
blue=>32

2nd search where date=yesterday:
web=>65
blue=>55
apple=>5

但现在我想将结果组合到一个 solr/lucene 查询中,以计算哪个词频增长得非常强而女巫没有。结果可能是:

示例 2:

one search merging both querys from example 1
web=>(70,65)  <- growth +7,69%
blue=>(32,55) <- growth -41,81%
apple=>(34,5) <- growth +680%

是否可以(并且有用)在 solr 中进行这种整合(和计算),还是最好启动 2 个 solr 查询(参见示例 1),然后使用 PHP 对结果进行后处理?

比你!

4

1 回答 1

0

如果您有先验的构面值,则可以使用构面查询来执行此操作,例如,您可以做facet.query=category:web AND date:[2011-06-14T00:00:00Z TO 2011-06-14T23:59:59Z]&facet.query=category:web AND date:[2011-06-13T00:00:00Z TO 2011-06-13T23:59:59Z]&...构面值 * 日期的笛卡尔积。

否则,要在 Solr 中执行此操作,我认为您必须编写一些自定义 Java faceting 代码。或者在客户端使用您提到的多个查询。

于 2011-06-14T13:43:57.827 回答