2013-05-13 70 views
2

我使用solr更像这样来分析最相似的文件。但是,虽然我指定mlt.count的参数,如果它不是15,分数不显示。越像这个参数是mlt=true&mlt.fl=text&mlt.count=12,而text是有术语向量的字段。而fl的说法是*,score。我查询了这个网址:Solr更喜欢这个不要返回分数,同时指定`mlt.count`

http://localhost:8983/solr/collection1/select?q=id%3A1967956383&wt=json&indent=true&mlt=true&mlt.fl=text&mlt.count=12

当我指定mlt.count=15时,得分出现。然后,我再次查询mlt.count=12,它也显示出来。

我的solr版本是4.0。

有没有人有什么想法?谢谢!

回答

2

这已被记录为SOLR错误SOLR-5042,并针对solr版本4.3发布了补丁。我已将该修补程序重新定位到4.2.1,并发现它修复了此处的行为。

如果您直接查询/ mlt处理程序,而不是使用/ select处理程序下的mlt组件,则可以解决此问题,因为处理程序接受其计数为rows = 12而不是mlt.count = 12。

+0

你的建议很好地得到分数,但它引入了一个新问题。让我们举一个例子:当我用select?qt = mlt执行我的查询时......我在'响应'中获得了33个文档,然后为每个文档获得了5个moreLikeThis的列表(没有分数)。当我改变mlt?...它说我在'匹配'中有33个NumFound,但是只有其中一个返回,并且在返回的唯一文档上执行moreLikeThis。你有解决这个问题的建议吗?谢谢 – lizzie 2013-12-31 15:49:42

+1

我的回答是针对上面的具体问题,如何修正计数为15时未显示的分数,以及SOLR-5042的修补程序修正了问题,修正问题时升级到4.6。 (当我在上面写下我的回应时,4.6尚未发布。) – 2014-01-07 22:59:13

+1

您首先描述的行为,使用Select处理程序,版本4.6或修补SOLR-5042后,您应该看到得分 以及MLT响应,只要您在输入参数中包含mlt.fl = score *。 – 2014-01-07 23:04:23