2

太陽黒点と solr に問題があります。開発中はチャームのように機能しましたが、本番環境では、Rails の本番ログから次のエラーが表示されます。

RSolr::RequestError (Solr 応答: 未定義のフィールド タイプ): app/controllers/search_controller.rb:7:in `index'

schema.xml と関係があると思います。しかし、私はsolrにかなり慣れていません。誰でも私を助けることができますか?

OK:
コントローラー

def index
 unless params[:q].blank?
  @search = Question.search do
    fulltext params[:q]
  end
  @results = @search.results

else
  @results = nil
end
@searchterm = params[:q]

終わり

モデル (質問)

...

searchable do
  text :title 
  text :content
end
4

4 に答える 4

6

実稼働の Solr インスタンスが Sunspot の を使用していないようschema.xmlです。

このtypeフィールドは、Sunspot の標準schema.xmlで定義する必要があり、後で検索をフィルタリングする際に使用するために、オブジェクトのモデル名をインデックス化するために使用されます。typeそれが未定義であるというエラー メッセージが表示されるのはschema.xml、Sunspot 以外のものを使用していることを意味します。

サーバーに Solr をインストールするために使用した方法から、他のサンプルまたはデフォルトの構成セットを使用している可能性があります。可能であれば、本番用の Solr サーバーをどのようにセットアップしたか詳しく教えてください。

于 2011-08-19T07:27:58.273 に答える
3

Solr 4.7 の場合、schema.xml と solrconfig.xml を your_app/solr/conf から /opt/solr/solr/collection1 (または solr パスが何であれ) にコピーします。それでも機能しない場合は、config/sunspot.yml を確認してください。次のようなものです:

production:
  solr:
    hostname: localhost
    port: 8983
    log_level: WARNING
    path: /solr/collection1
    # read_timeout: 2
    # open_timeout: 0.5

solr Web インターフェイスから別のコア (my_core) を作成し、そのフォルダーにコピーschema.xmlsolrconfig.xmlてパスを /solr/my_core にポイントすることをお勧めします。

于 2014-07-04T21:42:56.517 に答える
1

必ず schema.xml でフィールド タイプを required="true" に設定してください。そうしないと、インデックスを再作成してもインデックス データにフィールド「タイプ」が含まれません。

<field name="type" stored="true" type="string" multiValued="true" indexed="true" required="true" />
于 2013-12-09T17:42:04.700 に答える