アップデート
まず、メソッド「context」がありません。それは、ある時点で私の脳が作り上げて固執した言葉でした。明らかに、.excerpt() を実行していたはずです。次に、PG_Search::Document の個々のインスタンスではなく、返された配列に対してコマンドを実行していました。
二重の間違いですが、はい、コードは実際に機能します。
更新終了
最初のシステム情報:
- ルビー 1.9.3p194
- レール 3.2.13
- pg_search 0.5.7
- Postgres 9.2.3 (アンアクセントが有効)
このスレッドで行われた進捗状況を追跡しようとしています: ( pg-search multisearch の結果からの抜粋を表示する方法)
さて、その投稿から引用した次のクエリを使用すると仮定します。
@query = params[:query]
PgSearch.multisearch(@query).select("ts_headline(pg_search_documents.content, plainto_tsquery('english', ''' ' || unaccent('#{@query}') || ' ''' || ':*')) AS excerpt")
戻り値:
=> [#<PgSearch::Document id: 7, content: "1 <p>You think water moves fast? You should see ice...", searchable_id: 2, searchable_type: "Release", created_at: "2013-03-27 18:58:52", updated_at: "2013-03-27 18:58:52">]
context
いくつかの検索結果が正常に返されますが、メソッドがまったくありません。メソッドmultisearch
なしで呼び出しただけのようです。select
私は SQL と Postgres に関しては初心者なので、そのスニペットのデバッグをどこから始めればよいか正確にはわかりません。デバッグや、何が起こっているのかについての説明を手伝ってくれるとうれしいです。
また、私が重要だと思うことはさておき、pg_search に取り組んでいる人や、このような質問に回答してくれた人に感謝したいと思います。あなたは世界をより良い場所にします。