5

Solr 検索バーでオートコンプリートが機能するように支援する必要があります。アム、これを使用してhttps://github.com/xponrails/sunspot_autocomplete

手順に従いましたが、機能しません。

検索バーで行き詰まる - params[:search] を保持したまま、検索バーに追加するにはどうすればよいですか?

他の誰かが同じ問題を抱えていましたが、それを機能させるコードを削除しました。

*純粋にjquery-uiのオートコンプリートと関係がありますか? または、プラグインを特定の方法でインストールする必要がありました-正しくインストールしたかどうかわかりません。

ありがとうございます=)

4

2 に答える 2

0

オートコンプリートの手順を見つけてください。アイテムを含むオートコンプリートの例を示します。

ステップ1:<%= text_field_with_auto_complete'item'、'name'%>のようなオートコンプリートテキストフィールドを作成します

ステップ2:次に、auto_complete_for_item_nameという名前のメソッドを呼び出します。

setp 3:そのメソッド内で、テーブルからすべての行を取得し、@itemsという変数に保持します。

ステップ4:次に、この@items変数を使用して新しいメソッドを呼び出します。レンダリングのように:inline => "<%= auto_complete_result @items、'name'、'med_item'%>"

ステップ5:そのメソッドに次のように配置しますcontent_tag( "ul"、items.uniq.join)

入力したキーに基づいてすべてのアイテムが一覧表示されます。

私が間違っていたら訂正してください。

ありがとうございます。それでは、お元気で、

Viji Kumar.M

于 2012-10-10T07:06:12.220 に答える
0

私は自分のプロジェクトで試してみましたが、この手順でうまくいきました

  1. 必要なすべてのsunspotgem が含まれており、インストールされています ( https://github.com/sunspot/sunspot/blob/master/README.md )
  2. gem 'sunspot_autocomplete', ">= 0.0.3", :git => 'git://github.com/xponrails/sunspot_autocomplete.git'もちろん、autocomplete gemもインストールされました(マニュアルで提案されているものとは少し異なるgitパスを使用しました)
  3. gem が追加された後にアプリが再起動された
  4. 太陽黒点で生成された solrschema.xmlが変更されました (必要なすべてのノードがブロック内に追加されました <schema name="sunspot" version="1.0"> <types> *here* </types> </fields> *and here* <fields> </schema>) 。
  5. schema.xml の変更後に solr が再起動された
  6. 正しく起動したかどうかを確認しました!xml (ここで指摘した意味)
  7. モデルのブロックに必要な行searchable do; ...; endが含まれていました (テキスト フィールドと:using=>:[text field name]構文付きのテキスト フィールドにアドレス指定された一意の名前を持つオートコンペルト フィールドである必要があります)
  8. モデルはsearchable block変更後に再インデックスされました
  9. 必要な JavaScript ライブラリは application.js に含まれていました (すべての js ファイルを gem からアプリのアセット フォルダーにコピーする必要がありました)。
  10. 基本的なスタイルはapplication.cssに含まれていました(jsファイルと同じ状況)
  11. アセットをプリコンパイルする必要があります (本番環境で動作させる場合)
  12. 正しいautocomplete_text_fieldビューに追加されました(.html_safe生のテキストとしてレンダリングされたため、必要でした)
  13. アプリが再起動されました

そしてそれはうまくいきました!

しかし、この手順の 1 つまたは複数で、何かを見逃していると思います

すべての質問が検索フィールドをテンプレートに追加する方法である場合-この行を追加するだけです

<%= autocomplete_text_field("uniq", "field", "http://localhost:8982/solr/", "uniq_field") %>autocomplete :uniq_field, :using => :field- インデックスを作成し、それを solr のライブ バージョン ( http://localhost:8982/solr/)に指定したと仮定します。

いくつかのコードを私と共有していただければ、あなたが見逃したものを指摘できます

乾杯!

于 2012-10-07T14:19:28.350 に答える