0

Articleの全文を検索し、その全文に含まれる検索語の出現回数で結果を並べ替える検索メソッドを作成しようとしています。このようなもの:

def search
  term = params[:term]
  @articles = Article.where("body like ?", "%#{term}%")
  @articles.each do |a|
    b = a.body.count(term)
  end
  @articles = @articles.order("#{b} desc").limit(10).pluck(:name)
  render json: @articles, b
end

上記は明らかに機能しません。概念を説明するためだけにあります。任意のアイデアをいただければ幸いです。乾杯!

4

1 に答える 1

1

これを実現するには、全文検索ライブラリを使用する方がよいでしょう。

データベースとしてPostgresを使用している場合は、pg_searchを使用して、モデルにスコープを追加し、Postgresの組み込みの全文検索機能を利用できます。

または、外部の依存関係を追加したくない場合は、[インデックス付きとして機能]を使用して、ランク付けされたフルテキストの結果をアプリに追加できます。

さまざまなオプションのかなり包括的なリストは、RubyToolboxにあります。

開示:私はacts_as_indexedの作者です。

于 2013-01-31T09:23:33.027 に答える