在solr中动态设置数据目录

时间:2012-03-08 06:57:36

标签: solr solrj

我有一个分析日志的系统。它已经使用lucene来索引数据。现在我想添加一个分布式搜索,所以选择solr。我的问题是这样的,我正在查询搜索术语“注销”。我有3类指数 - 热,冷和冷。 Hot作为当前指数存在,其中热和冷是前几天的指数。

假设查询“注销”,我没有从热门部分得到足够的结果,所以现在我必须转到温暖部分,然后搜索它。即使我没有得到所谓的温暖计数,我也必须通过冷搜索。

那么有什么方法可以通过solr乐观地做到这一点,或者我应该根据numFound参数编写我的包装器吗?总之,我想优先考虑指数,只有在没有从较高优先级指数获得足够结果的情况下,才能搜索优先级较低的指数。

1 个答案:

答案 0 :(得分:2)

最简单的解决方案是将所有数据放在同一索引中,并使用包含数据类型的字段:hotwarmcold。然后,您可以使用edismax并为类型的不同值赋予不同的权重。这样您就可以使用单个查询执行所有操作,但结果中始终包含所有三种类型的数据,其中hot位于顶部,然后是warm,然后是cold。另一个问题是每天将hot转换为warmwarm转换为cold:此解决方案需要重新提交仅包含字段类型的所有文档,并且似乎不是你想要的。

否则,您可以在不同的solr核心上使用三个不同的索引,并在一个核心而不是其他核心之间切换客户端。这样您就必须进行多个查询。然后,您可以查看Solr CoreAdmin交换功能,将hot切换为warm,将warm切换为cold