9

solr (v 5.0.0) および pysolr (v 3.0.0) で django-haystack (v 2.3.1) を使用しています。私はチュートリアルmyapp/search_indexes.pyに従い、同様のsearch/indexes/myapp/mymodel_text.txtファイルをセットアップしました。

./manage.py build_solr_schema > schema.xmlこれを $SOLR_HOME/conf/schema.xml にコピーしました。

しようとすると問題が発生し./manage.py rebuild_indexます。まず、確認を求められます。

警告: これにより、接続「デフォルト」の検索インデックスからすべてが取り返しのつかないほど削除されます。
この後の選択肢は、バックアップから復元するか、rebuild_indexコマンドを使用して再構築することです。
続行してもよろしいですか?[y/N] y

次に、失敗します。

あなたがそう言ったので、インデックスからすべてのドキュメントを削除します。
Solr インデックスをクリアできませんでした: [理由: エラー 404 見つかりません]
すべてのドキュメントが削除されました。
Solr
にドキュメントを追加できませんでした: [理由: エラー 404 が見つかりません]

私の接続設定は次のとおりです。

#settings.py
HAYSTACK_CONNECTIONS = {
    'default': {
        'ENGINE': 'haystack.backends.solr_backend.SolrEngine',
        'URL': 'http://127.0.0.1:8983/solr',
    },
}

この URL に移動すると、solr 管理ページが表示されます。ポート 8983 が solr (および Django 開発サーバー用の 8000) 用に開いていることを確認しました。

十分な接続情報が提供されていないように感じますが、他に確認すべきことはありますか?

更新:
この問題は解決しましたが、django-haystack は solr 5 の準備ができていないため、代わりにsolr (v.4.7.0) を使用してすべて修正されました(これに関連する問題がありましたが、私はgithubで見つけることができなくなりました。

4

2 に答える 2

9

設定でコアを指定することを提案してくれた user366722 に感謝します。しかし、コアを作成するというさらに基本的なステップをおろそかにしていました。

解決策:
コアの名前 (「デフォルト」など) とポート (8983 など) を指定して、コアを作成します。

$bin/solr create_core -c default -p 8983

次に、haystack URL 設定でコアの名前 (「デフォルト」など) を指定するだけです。

#settings.py
HAYSTACK_CONNECTIONS = {
    'default': {
        'ENGINE': 'haystack.backends.solr_backend.SolrEngine',
        'URL': 'http://127.0.0.1:8983/solr/default',
    },
}

終わり!

今、私は得る

あなたがそう言ったので、インデックスからすべてのドキュメントを削除します。
すべてのドキュメントが削除されました。
3 ストーリーの索引付け

更新
執筆時点で、干し草スタックはsolr 5.xの準備ができていなかったため、それを機能させるためにsolr 4.7.0にも切り替えました

于 2015-06-04T02:01:31.273 に答える