0

太陽黒点を使用してローカル データベースを検索しています。gem を追加し、generate コマンドを実行し、solr サーバーを起動したら、次の手順を実行します。

class Style < ActiveRecord::Base
  attr_accessible :full_name, :brand_name
  searchable do
    text :full_name
    text :brand_name
  end
end

上記をスタイル モデルに追加し、インデックスを再作成しました (この投稿を作成する前に既にインデックスを作成していたため、ここに配置するためにインデックスを再作成しました)。

funkdified@vizio ~/rails_projects/goodsounds.org $ rake sunspot:solr:reindex
[RailsAdmin] RailsAdmin initialization disabled by default. Pass SKIP_RAILS_ADMIN_INITIALIZER=false if you need it.
*Note: the reindex task will remove your current indexes and start from scratch.
If you have a large dataset, reindexing can take a very long time, possibly weeks.
This is not encouraged if you have anywhere near or over 1 million rows.
Are you sure you want to drop your indexes and completely reindex? (y/n)
y
[#######################################] [14/14] [100.00%] [00:00] [00:00] [53.19/s]

次に、検索を試みますが、何も得られません

1.9.3p392 :003 > Style.search { fulltext 'Monkey' }.results
  SOLR Request (10.4ms)  [ path=#<RSolr::Client:0x0000000685ab28> parameters={data: fq=type%3AStyle&q=Monkey&fl=%2A+score&qf=full_name_text+brand_name_text&defType=dismax&start=0&rows=30, method: post, params: {:wt=>:ruby}, query: wt=ruby, headers: {"Content-Type"=>"application/x-www-form-urlencoded; charset=UTF-8"}, path: select, uri: http://localhost:8982/solr/select?wt=ruby, open_timeout: , read_timeout: , retry_503: , retry_after_limit: } ]
 => [] 

しかし、それが機能してこれを拾ったはずではありませんか?

Style.first
  Style Load (1.3ms)  SELECT "styles".* FROM "styles" LIMIT 1
 => #<Style id: 54, brand_name: "Monkey", full_name "Monkey Chicken", created_at: "2013-02-01 23:25:58", updated_at: "2013-02-16 03:02:16"> 

ここにもう 1 つの手がかりがあります。brand_name の「不明なフィールド」が表示されます (Style.rb で設定)

ここに画像の説明を入力

4

1 に答える 1

0

スキーマ (「検索可能」ブロック) を変更する場合は、すべてのモデルのインデックスを再作成する必要があります。

rake sunspot:solr:reindex

または、特定のモデルを特定のバッチ サイズ (ここでは 500) で再インデックス化します。

rake sunspot:solr:reindex[500,Style]

Githubの Sunspot doco に従ってください (「Reindexing Objects」を検索してください)。

参考までに、Style.reindexスキーマ以外の変更に使用するには、呼び出しSunspot.commitて変更を保存する必要があります。

于 2013-05-08T06:46:25.540 に答える