2

wiki https://github.com/sunspot/sunspotに基づいて、私は Sunspot を初めて使用します。

"If you are using Rails, objects are automatically indexed to Solr as a part of the save callbacks."

しかし、オブジェクトの保存を呼び出すと、これは機能しません。検索結果でレコードを見つけるには、手動で Object.reindex を実行する必要がありました。何か不足していますか?

ありがとう

コンソールログ

SQL (0.6ms)  INSERT INTO "toons" ("author", "created_at", "flag_id", "icon_s3_path", "json", "name", "state", "toon_type", "updated_at", "user_id", "uuid", "view_count") VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12) RETURNING "id"  [["author", "2333333"], ["created_at", Thu, 15 Aug 2013 22:49:40 UTC +00:00], ["flag_id", nil], ["icon_s3_path", nil], ["json", "[json]"], ["name", "2222222"], ["state", "created"], ["toon_type", "animation"], ["updated_at", Thu, 15 Aug 2013 22:49:40 UTC +00:00], ["user_id", 2], ["uuid", "2111112222"], ["view_count", nil]]

SOLR Request (25.6ms)  [ path=#<RSolr::Client:0x007fc37bb71920> parameters={data: <?xml version="1.0" encoding="UTF-8"?><add><doc><field name="id">Toon 21</field><field name="type">Toon</field><field name="type">ActiveRecord::Base</field><field name="class_name">Toon</field><field name="created_at_d">2013-08-15T22:49:40Z</field><field name="name_text">2222222</field><field name="author_text">2333333</field></doc></add>, headers: {"Content-Type"=>"text/xml"}, method: post, params: {:wt=>:ruby}, query: wt=ruby, path: update, uri: http://localhost:8982/solr/update?wt=ruby, open_timeout: , read_timeout: , retry_503: , retry_after_limit: } ]

SOLR Request (2.9ms)  [ path=#<RSolr::Client:0x007fc37bb71920> parameters={data: <?xml version="1.0" encoding="UTF-8"?><add><doc><field name="id">Toon 21</field><field name="type">Toon</field><field name="type">ActiveRecord::Base</field><field name="class_name">Toon</field><field name="created_at_d">2013-08-15T22:49:40Z</field><field name="name_text">2222222</field><field name="author_text">2333333</field></doc></add>, headers: {"Content-Type"=>"text/xml"}, method: post, params: {:wt=>:ruby}, query: wt=ruby, path: update, uri: http://localhost:8982/solr/update?wt=ruby, open_timeout: , read_timeout: , retry_503: , retry_after_limit: } ]

(7.5ms)  COMMIT
4

2 に答える 2

1

自動コミットをsolrconfig.xmlに追加することで修正

<autoCommit> 
  <maxDocs>10000</maxDocs>
  <maxTime>20000</maxTime>
</autoCommit>
于 2013-08-18T23:53:10.977 に答える
0

solrの再インデックスを実行しましたか? モデル内の検索可能なブロックを変更するときはいつでも (最初に作成したときを含む)、呼び出す必要があります

rake sunspot:reindex

その後、「よろしいですか」と尋ねられ、データが多いと時間がかかる可能性があるという警告が表示されます。「y」と応答すると、solr スキーマと検索可能なブロックに従って、すべてのデータのインデックスが再作成されます。その後、データベースにデータを追加すると、自動的にインデックスが作成されます。ただし、検索可能なブロックを変更するときはいつでも rake コマンドを使用することを忘れないでください。

于 2013-08-16T04:16:51.217 に答える