如何过滤MoreLikeThis查询

时间:2011-10-23 03:58:31

标签: c# solr lucene solrnet morelikethis

我正在使用SOLR并尝试过滤MoreLikeThis查询。每次我做滤镜我都会得到零结果。这是我正在使用的代码:

var results = solr.Query(new SolrQuery("id:" + id)
                         && !new SolrQuery("siteid:" + SiteId), new QueryOptions
{
    MoreLikeThis = new MoreLikeThisParameters(new[] { "content" })
    {
        MinDocFreq = 1,
        MinTermFreq = 1,
        Count = rows
    },
    Fields = new[] { "id" },
    OrderBy = new[] { new SortOrder("score", Order.ASC) },
    Start = start
});

正如您所见,!new SolrQuery("site:" + SiteId)是过滤器。当我在查询中添加此过滤器时,我得不到任何结果。

以下是查询的作用。我在solr索引中有一堆网页:

  • ID
  • 标题
  • 内容
  • SITEID

morelikethis查询需要id然后获取类似的文档。过滤器假设通过siteid过滤网页。当我应用siteid过滤器时,它不起作用。关于这个的任何想法?

1 个答案:

答案 0 :(得分:1)

您似乎想要使用MoreLikeThis handler,而不是MoreLikeThis as a component

There is a patch在SolrNet中实施此功能,目前正在审核中。我鼓励你看看补丁并给我们反馈意见!