我正在將搜索添加到帶有太陽黑子寶石的rails應用程序中,我希望能夠通過id,金額或描述搜索交易。通過單個屬性搜索工作正常,但是當我在搜索塊中添加多個with
或fulltext
調用時,我不會返回任何結果。我發現我可以在any_of
塊中包裝with
調用,但包括fulltext
會導致undefined method 'fulltext' for #<Sunspot::DSL::Scope:0x007fb6519c13a0>
錯誤。使用太陽黑子搜索同一型號上的多個不同類型的字段
當我僅搜索1個屬性時,搜索返回正確的結果,這意味着我在any_of塊中只有1個或全部文本。所以我要單獨搜索id,金額和描述。意思是如果有一個帶有ID 213的交易,搜索213將返回帶有ID 213的交易。如果我搜索$ 4.25,那麼結果將返回每個交易4.25美元。如果我搜索「星巴克」,那麼我會在描述中與「星巴克」進行每筆交易。如果我在anyblock中有多個with或全文,我不會得到任何返回的結果。
我缺少什麼?
我有一個交易模式,像這樣:
class Transaction < ActiveRecord::Base
...
searchable do
text :description
integer :id
float :amount
end
...
end
和Controller像這樣的動作:
def search
@search = Transaction.search do
any_of do
with(:amount, params[:search])
with(:id, params[:search])
fulltext(params[:search])
end
end
@transactions = @search.results
end
它是如何「打破它」?它是否給出錯誤,不返回結果,做不正確的結果返回等等。你可以發佈什麼params [:搜索]是,並且你可以驗證你實際上是否有一個包含該搜索的'description'字段的模型 – PhilVarg
我更新了錯誤和更多細節的問題。我需要知道如何在同一模型中搜索不同類型的多個字段,因此錯誤可能是語法。我確實有一個帶有描述字段的交易模型。 –