2010-10-11 43 views
0

我在RoR應用程序中使用太陽黑子寶石在Post模型上執行搜索,它對此很有幫助。但是,我需要將它的匹配算法用於單個後期對象。與單個物體匹配的太陽黑色Solr

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

Sunspot.search Post do 
    ... 
end 

但是,我需要做針對單個post對象的搜索,例如:

Sunspot.search @post do 
    ... 
end 

這可能嗎?

我想對單個帖子對象使用相同的匹配算法來檢查它是匹配還是不匹配。

+0

你的意思是你想在RoR中做這個匹配?或者你想與Solr中存儲的內容進行比賽? – 2010-10-11 23:45:27

+0

我想在RoR中做這個匹配。當我進行這場比賽時,該項目可能已經或可能未被添加到solr。因此,使用相同的邏輯solr用於在我的RoR應用程序中進行匹配會很好。 – 2010-10-12 01:15:32

回答

0

我不認爲這是可能的。它是Solr和Lucene,而不是Sunspot,他們擁有所有的算法來確定某個查詢是否匹配。 Solr客戶端僅構造查詢參數並將其提供給Solr,然後解析Solr結果。

+0

我想盡可能多,但希望在我可以使用的API中隱藏一些東西。好吧。 – 2010-10-18 05:56:04

0

我不太確定如何用太陽黑子做到這一點,但你可以嘗試的一件事是直接查詢RSolr,傳入你想檢查的模型的ID:fq,看看它是否返回結果與否。由於過濾器查詢應該返回相當快:

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