3

このトピックに関して他にも質問があったことを知っており、Web でいくつかのチュートリアルを読みました ( http://shrutiags.wordpress.com/2012/05/29/adding-solr-to-your-web-application-part-3 -integrating-solr-with-eclipse-2/およびhttp://javaskeleton.blogspot.de/2011/07/adding-solr-to-existing-web-application.html )。まだいくつかの未解決の質問があります。

1) 上記の両方のチュートリアルEmbeddedSolrServerで Solr へのアクセスに使用されていますが、Solr が別のアプリケーションとして実行されていないということですか? では、なぜフィルターとサーブレットを指定する必要があるのでしょうか?

2) どちらのチュートリアルでも、jar のコピーと貼り付けを使用します。代わりに使用すべき Maven 依存関係は何ですか?

3) Solr を既存の Web アプリに統合するための埋め込み方法とスタンドアロン方法の違いについては、まだよくわかりません。私が理解したように、スタンドアロンの方法は、Solr war ファイルを別のアプリケーションとしてデプロイすることを意味します。この場合、サーブレットやフィルターを指定せず、Solrj を使用して実行中の Solr インスタンスに接続するだけです。

Solr をアプリの一部として実行したい場合、何が変わるのでしょうか? Solrj だけでなく、依存関係をさらに追加する必要があります。そして、何らかの方法で Solr コアを初期化する必要があります。私は正しいですか?

4

1 に答える 1

4

質問への回答:

1) 常に EmbeddedSolrServer を使用する必要はありません... Solr はアプリケーション サーバーまたはサーブレット コンテナーに「スタンドアロン」Web サービスとしてデプロイできます。つまり、フィルターとサーブレットを指定する必要はなく、単にどこかにデプロイするだけです ( tomcat、jetty、glassfish など) を作成し、アプリケーションで "SolrServer" を定義し、SolrServer server = new CommonsHttpSolrServer(solrServerAddress);それを使用して Solr と通信します。

2)私自身のセットアップから、スタンドアロンのSolrを操作するための次のmaven依存関係があります。

<dependency>
    <artifactId>solr-solrj</artifactId>
    <groupId>org.apache.solr</groupId>
    <version>1.4.0</version>
    <type>jar</type>
    <scope>compile</scope>
</dependency>

他の依存関係を定義する必要がある場合があります (例: EmbeddedSolrServer が必要な場合)。ここで明確な詳細を見つけてください: http://wiki.apache.org/solr/Solrj#Maven。また、maven の依存関係に slf4j があることを確認する必要があります。

3) そうです。スタンドアロンの場合は、他のアクションを実行する必要がありますが、サーブレットやフィルターを定義する必要はありません。

質問に関して: 「Solr をアプリの一部として実行したい場合、何が変わるのでしょうか?Solrj だけでなく、より多くの依存関係を追加する必要があります。」はい、必要です...それに関する情報は、Solr の上記のリンクにあります。

于 2013-09-20T11:30:22.627 に答える