Apache Solrパート1でのDrupal 7検索-基本設定


「SolをDrupalに関連付ける方法」という別の投稿だけでなく、基本的な設定からファセットまでの一連の詳細な投稿を書きたいと思います。
あなたのコメントと質問に基づいて、次の投稿に追加資料を含める準備ができています。

記事のリスト:


Drupalでの通常の検索よりもApache Solrで検索することの利点は次のとおりです。


最初の部分では、基本的な設定から始めましょう。

入力パラメーター:
Ubuntu 10.04 OSを使用しています
基礎として、私はDrupal 7.22とsearch_apiとsearch_api_solrを検索するためのモジュールを取りました
Apache Solr 3.6.1検索サーバー

ダウンロードする必要があるモジュールのリスト:search_api、search_api_solr、entity、ctools、views

1. Apache Solrをインストールします


公式サイトからサーバーをダウンロードします
Apache Solr 4.xの新しいバージョンがありますが、search_api_solrモジュール内のスキーマファイルは3番目のバージョン専用であるため、使用する必要があります。

ダウンロードしたアーカイブを都合の良い任意のフォルダーに解凍します。
私の場合、これは/home/kainz/applications/apache-solr-3.6.1です。サーバーを起動するには、Javaが必要です。 openjdk-6パッケージがインストールされています。これまたはあなたに合った他のパッケージを選択できます。

サーバーを起動するには、コンソールのApache Solrディレクトリーに移動してから、例(私の場合、これは/home/kainz/applications/apache-solr-3.6.1/example)に移動し、 java -jar start.jarを実行しjava -jar start.jar
正常に起動した場合、一連のサービス情報が表示され、最後に次のメッセージが表示されます。
「2013-04-05 00:27:09.845:INFO :: Started SocketConnector@0.0.0.0:8983」または類似のもの(バージョンに依存)。

Drupalモジュールを使用したApache Solrの新しいバージョンで互換性の問題が発生した場合は、このマニュアルを作成するときに使用したサーバーをダウンロードできます。 すでに構成されており、機能しています。

2. Apache SolrをDrupalに接続する


最初に、 search_apiおよびsearch_api solrモジュールをインストールします。

search_api_solr 7.x-1.0-rc2およびsearch_api 7.x-1.4を使用しました

モジュールに加えて、SolrPHPClientライブラリーをインストールする必要があります。 こちらからダウンロードできます。 ダウンロードしたライブラリは、Drupalサイトのsites / all / libraries / SolrPHPClientフォルダーに配置する必要があります。

次に、search_api_solrモジュールに移動して、そこからschema.xmlとsolrconfig.xmlの2つのファイルをサーバー構成のフォルダー(私の場合は/home/kainz/applications/apache-solr-3.6.1/example/solr/conf)にコピーする必要があります。 これらのファイルは、DrupalがApache Solrと対話するために必要です。 これらのファイルをコピーしたら、サーバーを再起動する必要があります。 localhost :8983 / solr / admin /にアクセスして、検索サーバーが機能していることを確認してください。

3. Drupal検索の構成


search_apiおよびsearch_api_solrモジュールをまだ有効にしていない場合は、それらを有効にしてキャッシュをクリアします。
admin / config / search / search_apiページでは、サーバーとインデックスの2つのエンティティを作成できます。
サーバーは、DrupalとApache Solrの間のブリッジとして機能します。 Apache Solrサーバーにアクセスするための設定を保存します。
インデックスを使用すると、特定の方法で検索をカスタマイズできます。 1つのサーバーに対して複数のインデックスを作成できます。 たとえば、異なるタイプのノードの異なるインデックス。

それでは、admin / config / search / search_api / add_serverサーバーを作成しましょう

サービスクラスとして、「Solrサービス」を選択します。 クラスを選択できない場合は、SolrPHPClientライブラリーがsites / all / libraries / SolrPHPClientにインストールされ、search_api_solrモジュールが有効になっていることを確認してください。



ホスト、ポート、パスなどのサーバーデータは、デフォルトでインストールに適しています。 サーバーが正しく構成されている場合、フォームを送信すると、情報メッセージが表示されます。



インデックスを作成します-admin / config / search / search_api / add_index。 これをノードインデックスと呼び、サーバーとして、作成したSolrサーバーを選択します。 アイテムにすぐにインデックスを作成する-便利なオプションで、作成時にノードにインデックスを付けることができます(選択しない場合、ノードはクラウンによってインデックス付けされます)。



次のステップは、検索するフィールドを選択することです。 ここでは、タイトルのみを選択してフォームを保存します。 次に、検索結果を表示するためのビューを作成します-admin / structure / views / add。 この前に、モジュールsearch_api_views、views、views_ui、ctoolsを有効にする必要があります。

検索結果には、viewsモジュール用の特別なタイプのビューがあります。 インデックスを選択-ノードインデックスを作成し、ページ表示のあるビューを作成して構成します。



これを行うには、出力のTitleフィールドとBodyフィールドを追加します。 次に、コンテキストフィルター「検索:全文検索」を追加し、このフィルターの設定で[タイトル]フィールドを選択します。 したがって、検索は[タイトル]フィールドで行われます。 これに加えて、フォームを通して検索引数を入力できるように、別の公開されたフィルターを追加します。



ビューを保存します。 このページでまだインデックスが作成されていない場合、ノードのインデックス作成を開始しますadmin / config / search / search_api / index / node_index / status 事前にノードの記事をいくつか作成しました。

/ search-resultsページに移動します-これは、ページタイプの表示用に指定したアドレスです。
キーワードが指定されていないため、すべてのノードが表示されます。



これが、キーワードの検索結果の外観です。



おわりに


デフォルトでは、Apache Solrはロシア語でうまく検索しません。 これを修正するには、schema.xmlファイルで行を見つけます
 <!-- <filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/> --> 

で置き換えます
 <filter class="solr.SnowballPorterFilterFactory" language="Russian" protected="protwords.txt"/> 

, , Apache Solr, . , . , .
<filter class="solr.SnowballPorterFilterFactory" language="Russian" protected="protwords.txt"/>

, , Apache Solr, . , . , .

Source: https://habr.com/ru/post/J175527/


All Articles