2

私は Ubuntu 12.04 を使用しており、django 1.4.2 サイトにインストールされた django-haystack (2.0beta) を介して jetty (9_M4)、solr (4.0.0) を使用しています。

django-haystack を使用して Ubuntu で solr 4.0 を起動して実行するためのドキュメントがほとんどないため、これを起動して実行するには、フープを何度もジャンプする必要がありました。しかし、それはどれほど難しいでしょうか?

私の主な混乱は、Jetty が行っていることと Solr が行っていることです。

そのため、このチュートリアルのコメントに記載されているように、init ファイルを少し調整して、このチュートリアルで Jetty をインストールしました。Jetty が実行されるようになりました。再起動後でもブラウザで確認できます。

偉大な。

調整を加えて、このチュートリアルで Solr のインストールに進みます。それ以外の:

cp -R apache-solr-4.0.0/example/solr /opt

私が使う:

cp -R apache-solr-4.0.0/example/* /opt/solr/

したがって、次を /etc/default/jetty に追加します。

JAVA_OPTIONS="-Dsolr.solr.home=/opt/solr/solr $JAVA_OPTIONS"

なぜそんなことをしたのか正確には覚えていませんが、当時は理由がありました。私はその時点でそのチュートリアルの使用をやめました.solrのコアの概念をよく理解していないためです.

(コンテキストとして、約 6 か月前に solr 3.5 を使用して django-haystack 2.0 をセットアップしたときは、恐ろしく簡単で、別の Jetty のインストールは必要ありませんでした。すべての作業に約 2 時間かかりました)

とにかく、Django のインストールに戻り、schema.xml を作成し、stopwords-en.txt を変更して、それを /opt/solr/solr/collection1/conf にコピーします。

/opt/solr/solr/collection1/conf/solrconfig.xml を編集して updateLog への参照を削除します。バージョンフィールドを schema.xml に追加しようとして、なんらかの文字エラーでひどく失敗したためです。詳細については、こちら (lucene -solr-user メーリング リスト)こちら (django-haystack github)を参照してください。

最後に、/opt/solr に cd して実行します。

sudo java -jar start.jar

バダブーム!いくつかの結果が得られます (django サイトにアクセスして、設定した検索を使用すると)。素晴らしい。これは本当に素晴らしいです。ここで、solr の開始を永続化する必要があります。

次のような /etc/init/solr を作成します。

description     "Solr Search Server"

# Make sure the file system and network devices have started before
# we begin the daemon
start on (filesystem and net-device-up IFACE!=lo)

# Stop the event daemon on system shutdown
stop on shutdown

# Respawn the process on unexpected termination
respawn

# The meat and potatoes
exec /usr/bin/java -jar /opt/solr/start.jar >> /var/log/solr.log 2>&1

サーバーを再起動しても何も表示されません。solr が実行されていることは確認できますが、django 検索で結果が得られません。

init ファイルを削除して、もう一度 cli から実行してみます。

だから、私の質問は次のとおりです。

  1. 私は一体何を間違えたのですか?

  2. 起動時に solr を開始し、誤って停止して Django/haystack インターフェースを介して結果を生成した場合に再生成するにはどうすればよいですか?

  3. なぜ jetty と solr を同時に実行する必要があるのですか? /opt/jetty/webapps/solr.war と /opt/solr の関係は? 競合の原因を作成していますか?

  4. solr 3.5 ではこれが簡単だったのに、今は難しいのはなぜですか? 私はこれを正直に尋ねます.solr開発者からの言い訳や説明のリストは必要ありません.最初のインスタンス(solr 3.5)で私の理解がどのように制限され、2時間で実行できるようになるのか、そしてなぜ今私がjetty/solr アーキテクチャと cli/shell スクリプトのハッキングを実行するには、包括的な理解が必要ですか?

4

1 に答える 1

3

あなたのすべてのものを手に入れることを約束するわけではありませんが、(数字は質問と一致しません):

1) Jetty は Web サーバーです。ただし、Solr はその Web サーバー内で (Web) アプリケーションとして実行されます。

2) Jetty は組み込み Web サーバーを実行することもできます。これが Solr ダウンロードの仕組みです。java -jar start.jar を実行すると、すべてが事前構成された状態で Jetty が実行されます。その場合、スタンドアロンの Jetty は必要ありません。組み込みの Jetty から始めて、外部の Jetty に切り替えることをお勧めします。ただし、ローカル アプリのみがローカル Solr サーバーと通信する場合は、完全な Jetty を必要とせずに、かなり遠くまで到達できる可能性があります。

3) サンプル ディレクトリにあるすべてのものは必要ありません。複数の構成とサポート ファイルがあり、多少ネストされています (これは紛らわしいです)。

4) 開始するには、次の 2 つが必要です。solr を実行します。構成ディレクトリ

5) Solr を実行する最も簡単な方法は、配布ディレクトリ全体 (私が知っている - 大きい) をどこかに置くことです (例: /opt/solr)。

6) 構成ディレクトリは非常に単純です。最初に必要なのは 2 つのファイルです。名前にうるさい場合は 3 つです: ) -- collection1/ (これはデフォルト名です。solr.xml で変更できます) -- collection1/conf/ (これは構成ディレクトリです。Solr は、正しく起動すると同じレベルにデータ ディレクトリを追加します) schema.xml -- collection1/conf/shema.xml -- collection1/conf/solrconfig.xml

7) 次に、example ディレクトリで java -Dsolr.solr.home= start.jar を実行する必要があります。これにより、すべてのピースがポート :8983 で稼働します。Solr 4 にはかなり新しい管理インターフェースがあるので、ブラウザでアクセスして、チュートリアルなどを行ってください。

最小限の機能する schema/solrconfig ファイルについてサポートが必要な場合は、個別に問い合わせてください。ただし、fieldType アナライザーには他のすべてのファイル参照が含まれているため、サンプル ディレクトリのファイルだけを使用することはできません (ただし、これらの行をコメント アウトすることはできます)。

于 2013-01-23T13:17:29.053 に答える