如何过滤MoreLikeThis查询

本文关键字:MoreLikeThis 查询 过滤 何过滤 | 更新日期: 2023-09-27 18:12:00

我正在使用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

这个查询获取一个id,然后获取类似的文档。过滤器应该通过站点id来过滤网页。当我应用siteid过滤器时,它不起作用。对此有什么想法吗?

如何过滤MoreLikeThis查询

似乎您想使用MoreLikeThis处理程序,而不是MoreLikeThis作为组件。

在SolrNet中有一个实现此功能的补丁,目前正在审查中。我鼓励你看看这个补丁并给我们反馈!