「SolをDrupalに関連付ける方法」という別の投稿だけでなく、基本的な設定からファセットまでの一連の詳細な投稿を書きたいと思います。
あなたのコメントと質問に基づいて、次の投稿に追加資料を含める準備ができています。
記事のリスト:
- Apache Solrパート1でのDrupal 7検索-基本設定
- Apache SolrでのDrupal 7 Searchパート2-インデックスの調整方法の学習
- Apache SolrでDrupal 7を検索するパート3-カスタムフィールドとオプションをインデックスに追加する方法を学ぶ
- Apache Solrパート4-ファセットフィルターでDrupal 7を検索する
- Apache SolrによるDrupal 7の検索パート5-ファセットフィルターウィジェット
- Apache Solrパート6を使用してDrupal 7で検索する-Apache Solr + Tomcatを構成する
- Apache SolrによるDrupal 7検索パート7-ロシア語の全文検索
Drupalでの通常の検索よりもApache Solrで検索することの利点は次のとおりです。
- Apache Solrを介した検索ははるかに高速で、データベースサーバーをロードしません。
- 柔軟にカスタマイズ可能な検索オプション
- サイトのスケーリングが簡単で、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, . , . , .