我已經成立了pg_search在我的Rails應用程序在Heroku:如何顯示從PG-搜索multisearch摘錄結果
@query = 'fast'
PgSearch.multisearch(@query) #=>
[#<PgSearch::Document searchable: ferrari, :content: 'this car is really fast'>,
#<PgSearch::Document searchable: viper, :content: 'a very fast car'>]
我想顯示這些結果與content
摘錄,以顯示其中匹配發生。我可以打電話excerpt(content, @query)
得到我想要的東西時@query
僅一字之差,但excerpt()
只能處理精確匹配,因此,如果:
@query = 'car fast'
PgSearch.multisearch(@query) #=>
[#<PgSearch::Document searchable: ferrari, :content: 'this car is really fast'>,
#<PgSearch::Document searchable: viper, :content: 'a very fast car'>]
然後excerpt(content, @query)
是零,因爲無處content
不準確的那句「汽車快」出現。
我認爲excerpt(content, @query.split(' ').first)
至少顯示東西進行多字查詢,但仍存在這樣的情況下:
@query = 'car?'
@results = PgSearch.multisearch(@query) #=>
[#<PgSearch::Document searchable: ferrari, :content: 'this car is really fast'>,
#<PgSearch::Document searchable: viper, :content: 'a very fast car'>]
excerpt(@results.first.content, @query) #=> nil
那麼,如何鄉親使用pg_search時顯示在搜索結果中摘錄?
第一塊代碼適用於我。感謝Sirvine的回答,並感謝Nertzy爲我們指出了正確的方向和出色的pg_search gem! –
是不是第一個代碼塊受SQL注入? – bfcoder