【发布时间】:2013-06-05 04:09:11
【问题描述】:
我想在Solr 中实现relevance feedback。 Solr 已经有一个More Like This 功能:给定一个单个文档,返回一组按与单个输入文档的相似度排列的相似文档。是否可以将 Solr 的 More Like This 功能配置为更像那些?换句话说:给定一组文档,返回与输入集相似的文档列表(按相似度排序)。
根据this question的回答将Solr的More Like This变成More Like 可以通过以下方式完成:
- 获取返回指定文档的查询结果集的url。例如,url
http://solrServer:8983/solr/select?q=id:1%20id:2%20id:3返回对查询id:1 id:2 id:3的响应,这实际上是文档 1、2、3 的串联。 - 把上面的url(指定文档的串联)放在More Like This handler的
url.streamGET参数中:http://solrServer:8983/solr/mlt?mlt.fl=text&mlt.mintf=0&stream.url=http://solrServer:8983/solr/select%3Fq=id:1%20id:2%20id:3。现在,More Like This 处理程序将文档 1、2 和 3 的串联处理为单个输入文档,并返回与串联相似的排序文档集。
这是一个非常糟糕的实现:将输入文档集视为一个大文档会区分短文档,因为短文档仅占整个大文档的一小部分。
Solr's More Like 此功能由The Rocchio Algorithm 的变体实现:它采用(单个)输入文档的前 20 个术语(具有最高 TF-IDF 值的术语)并将这些术语用作修改后的查询,根据他们的 TF-IDF 提升。我正在寻找一种方法来配置 Solr 的 More Like This 功能,以将多个文档作为其输入,从每个输入文档中提取前 n 个术语,并使用根据其 TF-IDF 提升的这些术语查询索引。
是否可以将 More Like This 配置为这种行为方式?如果没有,在 Solr 中实现相关反馈的最佳方式是什么?
【问题讨论】:
标签: solr lucene information-retrieval