后处理solr的分面搜索结果

时间:2011-06-14 12:53:09

标签: php lucene solr faceted-search

我不确定如何处理以下问题。我希望,能够得到一些想法或类似的东西。 我正在使用lucene和solr。每个文档(在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对结果进行后处理?

比你!

1 个答案:

答案 0 :(得分: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分面代码。或者在客户端做,如你所提到的多个查询。