2014-04-02 52 views
1

有没有方法通过特定多值字段中值的数量提升文档 - 在查询时间?即更多数值,更多的提升。Solr通过多值字段中值的数量提升结果

是否有类似bf="count(pets)^5.0" - 宠物是一个多值场?

我知道我可以在索引时存储计数并在查询时使用bf="number_of_pets^5.0"来提高值。但是,我试图为此找到一个查询时间解决方案,以便我可以避免修改架构(并重新编制索引)来实现此目的。

+0

你的意思是如果我有3个文档 - (id = 1,color = red; id = 2,color = red,blue; id = 3,color = black,red),然后你想查询这个文档,他们来了id2,id3,id1?即使你查询*:*。我理解你了吗? – Mysterion

+0

多值字段中值的数量更多,提升更多。由于文档#2和#3在字段颜色中具有更多值,因此它们位于文档#1之前。那是对的。有没有内置的方式来实现这一目标? – techfoobar

+1

到目前为止,我不知道如何以内置的方式做到这一点。作为一种可能的解决方案 - 使用bf自定义书面函数查询“count” – Mysterion

回答

2

这已经是been askedtimes之前。看起来像一个想要的功能!

看着wiki我看不到任何与多值字段相关的函数,所以我认为在提供这些答案之后没有什么变化是安全的。

+0

谢谢您的回答。我之前做过搜索,但不知何故找不到这一个!我结束了分开索引计数(我最初想避免的)。无论如何,谢谢。 – techfoobar

+1

你可以看看[CountFieldValuesUpdateProcessorFactory](http://lucene.apache.org/solr/4_1_0/solr-core/org/apache/solr/update/processor/CountFieldValuesUpdateProcessorFactory.html),它可以做到这一点,但我明白这仍然需要重新索引,并且仅适用于Solr 4.1。 – mindas