我已经成立了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