我在我的 RoR 应用程序中使用 Sunspot gem 对Post
模型进行搜索,它非常适合。但是,我需要对单个帖子对象使用它的匹配算法。
例如,我可以像这样搜索所有帖子:
Sunspot.search Post do
...
end
但是,我需要对单个帖子对象进行搜索,如下所示:
Sunspot.search @post do
...
end
这可能吗?
我想在单个帖子对象上使用相同的匹配算法来检查它是否匹配。
我在我的 RoR 应用程序中使用 Sunspot gem 对Post
模型进行搜索,它非常适合。但是,我需要对单个帖子对象使用它的匹配算法。
例如,我可以像这样搜索所有帖子:
Sunspot.search Post do
...
end
但是,我需要对单个帖子对象进行搜索,如下所示:
Sunspot.search @post do
...
end
这可能吗?
我想在单个帖子对象上使用相同的匹配算法来检查它是否匹配。
我不认为这是可能的。是 Solr 和 Lucene,而不是 Sunspot,他们拥有所有算法来确定任何给定查询是否匹配。Solr 客户端仅构造查询参数并将它们提供给 Solr,然后解析回 Solr 结果。
我不完全确定如何使用太阳黑子执行此操作,但您可以尝试的一件事是直接查询 RSolr,在 :fq 中传入您要检查的模型的 ID,然后查看它是否返回结果. 由于过滤器查询,应该很快返回:
solr = RSolr.connect(:url => Sunspot.session.config.solr.url)
solr.select :q => solr_query, :fq => ['type:Post', "id:#{@post.id}"]