后处理解决方案';s分面搜索结果


postprocess solr's faceted search result

我不知道如何处理以下问题。所以我希望,在这里得到一些想法或类似的东西。我在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查询中,以计算哪个词频增长得很强,而witch没有。结果可能是:

示例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对结果进行后处理?

比你!

如果您事先有facet值,那么您可以使用facet查询(即类似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]&...的查询)来执行此操作,因此您可以执行facet值*日期的笛卡尔乘积。

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