太阳黑子Solr匹配单个对象

时间:2010-10-11 22:15:23

标签: ruby-on-rails solr sunspot

我在我的RoR应用程序中使用Sunspot gem来对Post模型进行搜索,它的效果非常好。但是,我需要对单个帖子对象使用它的匹配算法。

例如,我可以搜索所有帖子:

Sunspot.search Post do
  ...
end

但是,我需要针对单个帖子对象进行搜索,如下所示:

Sunspot.search @post do
  ...
end

这可能吗?

我想在一个帖子对象上使用相同的匹配算法来检查它是匹配还是不匹配。

2 个答案:

答案 0 :(得分:0)

我认为这不可行。它是Solr和Lucene,而不是Sunspot,它拥有所有算法,可以确定任何给定查询是否匹配。 Solr客户端只构造查询参数并将它们提供给Solr,然后解析Solr结果。

答案 1 :(得分:0)

我不太确定如何使用太阳黑子做到这一点,但你可以尝试的一件事是直接查询RSolr,传入你想要检查的模型的ID:fq,看看它是否返回结果与否。由于过滤查询,应该返回相当快:

solr = RSolr.connect(:url => Sunspot.session.config.solr.url)
solr.select :q => solr_query, :fq => ['type:Post', "id:#{@post.id}"]