ファセット検索のApache Solrのdrupalのホスティング
注意:最後にこのブログの記事を投稿する動機を提供するためのダグ・ヴァンへの余分な特別な感謝を!
早期のDrupal 8の検索APIとSolrの関連モジュールは初期のアルファ状態にあった2016年、で、私は検索APIのSolrとファセットとのDrupal 8にファセットのApache Solrの検索ページを設定するブログ記事を書きました。
その記事は、Drupalの8でSolr検索は非常にラフな状態のままだったが、多くはそれ以来変更されている、とDrupalの8中のSolrベースの検索がはるかに安定(かつ簡単ツーである痛みを伴う月の間に役立ちました今日)の場所を設定するので、私は、私はついにそれがほぼ一年後に、Drupalの8にファセットSolr検索を構築するのがいかに簡単で示すために、新しい記事を書くだろうと思っていました。
ApacheのSolrのローカルの開発環境を構築
私は常にローカルDrupalのVMを使用してDrupalのサイトを構築し、維持このごろ。これを実行すると、私はそれが好き正確にどのように開発環境をセットアップすることができます、とApache Solrのは自明である追加のようなものをやって。だから、このチュートリアルのために、私は振り出しから開始し、絶対に何も開始し、DrupalのVMと作曲のファイルを使用して、新しいDrupalの8サイト上のファセット検索を構築する方法を紹介します:
DrupalのVMをダウンロードして、クイックスタートガイドに従ってください。その後、ApacheのSolrのがインストールされていることを確認するためのDrupal VMフォルダ内に以下のconfig.ymlを追加します。
私たちは、(デフォルトでは、DrupalのVMフォルダ内のDrupalのサブディレクトリ内の)同期フォルダパスに作曲・ベースのDrupalをインストールしたDrupalサイトを生成するために、DrupalのVMの作曲統合を使用するつもりです。
drupal_composer_dependencies変数は検索APIのSolrとファセットを得るために必要なモジュールを必要と作曲にDrupalのVMに指示します。 post_provision_scriptsスクリプトは、DrupalのVMに含まれ、かつ適切に検索API Solrのモジュールで使用するためのDrupalのVMでインストールのApache Solrののバージョンを設定します。
drupal.composer.jsonにexample.drupal.composer.jsonをコピーします。その後、ローカルの開発環境を構築し、検索を始めるために必要なすべてのDrupalコードをダウンロードするために放浪を実行します。
注意:既存のサイト上に検索したり、DrupalのVMを使用したくない、ダウンロードと検索APIをインストールし、検索APIにSolr、およびファセットを手動でモジュール、そしてあなたは、Apache Solrのランニングと検索コアを持っていることを確認し設定している場合最新の検索API Solrのモジュールのバージョンのコンフィギュレーションで構成。
モジュールをインストールします。
あなたは、DrupalののUIを経由してモジュールをインストールする場合:
- drupalvm.dev/に移動します。その後、管理者としてログインします(デフォルトのユーザ名とパスワードはadmin / adminです)。
- 「ファセット」、「Solr検索」、および「Solrの検索Defaults」を、拡張ページ(/管理/モジュール)に移動し、「APIを検索する」を有効に。
あなたはDrush経由でモジュールをインストールする場合:
- drush @ drupalvm.drupalvm.devエン-y面search_api search_api_so LR search_api_solr_defaultsを実行します
あなたはそれがインストールされ、それが検索APIまたはファセットのために必要とされていないなら、コア「検索」モジュールをアンインストールする必要があり、それがインストールされている場合、サイトのデータベース内の余分な迷惑メールを保存していきます。
Solrのサーバーを設定します
検索APIの設定ページにアクセスして、以下の変更を行う、デフォルトのSolrサーバを編集します。
- collection1に変更 'Solrのコア'(デフォルトはD8です)。
注意。デフォルトのSolrコアの名前が自動的D8に設定されているとして、DrupalのVMの最新バージョンは、もはや(これPRを参照)、このステップを必要としません。
この時点で、サーバーのステータスページ(/管理/設定/検索/検索-API /サーバー/ default_solr_server)に、次のメッセージが表示されるはず「のSolrサーバが到達できる」と「Solrのコアがアクセスすることができ」:
これが完了すると、(drush @ drupalvm.drupalvm.dev PMU -y search_api_solr_defaults)Solrの検索のデフォルトモジュールをアンインストールします。あなたのSolrサーバの設定は今、サイトのアクティブなコンフィギュレーション・ストアの一部であり、削除されませんように、このモジュールは、もはや、最初のインストール後に必要とされません。
Solrのインデックスを設定します
Solrの検索のデフォルトモジュールは、ウェブサイト上で公開されたすべてのノードを含むデフォルトのコンテンツのインデックスを作成します。我々の場合には、それがすべての基本的なページと記事が含まれることになることを意味します。
訪問/管理/ configに、あなたは、インデックスの設定には何も変更する必要はありませんが、あなたの周り突くを持っており、それがセットアップされたか確認したいとあなたがデータソースの観点から、フィールド、またはプロセッサに持っているもののオプション場合/検索/検索-API /インデックス/ default_solr_index /編集。
(あなたがいずれかを持っていない場合)デフォルトのコンテンツを追加します。
あなたがDrupalのVMを使用してこのサイトを構築しましたと仮定すると、それはおそらく、サイトのインデックスを作成する一切のコンテンツで、不毛です。これを修正するには、Develのモジュールの便利なコンパニオンを使用することができ、Develのが生成します。
- 有効Develのが生成します。drush @ drupalvm.drupalvm.devエン-y devel_generate
- ダミーコンテンツを生成します。drushする@ drupalvm.drupalvm.devが生成コンテンツ100を
- 注:この記事の執筆時点では、Drushコマンドが生成されたコンテンツにはなりませんでした。 Drushコマンドがコンテンツを生成していない場合は/コンテンツを生成/管理/設定/開発/でUIを使用してください。
今あなたが、インデックスと検索できるノードの束を持っています!
検索インデックスが動作している確認してください
それはあなたの生産のSolrサーバが検索できます作られたばかりの、インデックス付きコンテンツの前に数分を待つようにするのが最善です。この方法は、検索Solrの缶バッチとしてその更新操作もう少しパフォーマンスです。しかし、地元の発展のためには、DrupalのVMの構成が、それはDrupalは任意のコンテンツを送信した直後に検索インデックスです更新するようにSolrに指示しますので、インデックスは、テスト目的のために、可能な限り迅速に最新のも持っていてうれしいです。
それで、あなたはDevelのでコンテンツを生成した場合に発生する、デフォルトの検索インデックス(/管理/設定/検索/検索-API /インデックス/ default_solr_index)のインデックス状況のページをご覧ください、あなたは、インデックスを作成、サイト上のすべてのコンテンツが表示されます。
既存のサイト上で作業し、またはしている場合、すべてのコンテンツは、まだいくつかの理由でインデックス化されていない場合は、することができます手動でインデックス「インデックス今」ボタンをクリックすると、操作が完了するのを待っていることにより、すべてのコンテンツ。
インデックス速度があなたのサイトの複雑さに応じて変化することに注意してください。あなたは多くの複雑なノードの種類と数千人またはノードの数百万人の何百ものサイトをお持ちの場合は、インデックス作成のためのより効率的な方法を使用する必要があります、または他のすべてのあなたのコンテンツが検索されるのを待っヶ月になるでしょう!
ファセットSolrの検索ビューを作成します
Solrの検索のデフォルトモジュールを使用すると、/ Solrの検索/コンテンツにアクセスすることができます例えば、ビューベースの検索ページを作成します。あなたのコンテンツがSolrの(!それを試してみる)にインデックスされるので、それはすでに、機能的でなければなりません。
多くのサイトでは、一般的なキーワードベースのサイト検索のこの種は、あなたが必要だろうとすべてです。しかし、我々は少しそれを美化し、パスを変更し、コンテンツタイプファセットを追加することによって、それをより機能させるでしょう。
まず、訪問/管理/構成/ビュー/ビュー/ solr_search_contentでビューを変更します。
- (代わりに、「コンテンツ検索」の)「検索」にタイトルを変更します。
- 「/検索」(代わりに「/ Solrの検索/コンテンツ」)へのパスを変更します。
- [保存]をクリックします。
第二に、/管理/設定/検索/ファセットを訪問し、ファセットコンテンツタイプを作成します。
- 「ファセットを追加]をクリックします。
- (これは編集した図である)「ビューSolr検索のコンテンツページを表示」を選択ファセットソースを。
- ファセットのフィールドのための「コンテンツの種類(タイプ)」を選択します。
- (これは後にブロックを置くことに役立ちます) - 椎「コンテンツタイプの検索ファセット」を名前を付けます。
- [保存]をクリックします。
- ファセット編集ページでは:
- 「結果の量を表示する」のチェックボックスをオンにします。
- 「リスト・アイテム・ラベル」のチェックボックスをチェックします(これは、ファセットショーの代わりに「page'ラベルの代わりに、各項目のマシン名の「基本ページ」になります)。
- [保存]をクリックします。
ファセットは今、検索ビューがレンダリングされるとき、それが表示されますので、あなたのテーマに配置する準備が整いました。ブロックレイアウトの設定ページ(/管理/構成/ブロック)を訪問し、あなたは、ファセットを表示する地域でのプレイスブロック」をクリックしてください。私のテーマで、私は、「サイドバー最初の」領域を選択しました。
「 - コンテンツの種類を検索するファセット」(作成したばかりのファセット)とのプレイスブロック」をクリックして下さい。そして、「タイプ別フィルター」のような何かにブロックのタイトルを設定し、「保存ブロック」をクリックしてください。あなたはファセットが表示されるように、それを必要とするページに検索結果が存在しない場合、まったく表示しないように設定されているので、ブロックのための具体的な可視性制約を設定する必要はありません。
ブロックレイアウトページ上の「保存・ブロック」をクリックし、[検索/であなたのサイト全体の検索ページを参照してください。
あなたが検索を実行する場合は、椎間の結果の数がそれに応じて調整されますがわかります。
この時点で、あなたはあなたのDrupal 8サイト上で完全に動作ファセットSolr検索を持っている必要があります。ここから、あなたは(?代わりにフルレンダリングされたコンテンツのかもしれない内容ティーザー)異なる結果を出力するには、さらなる作業を検索ページをカスタマイズすることができ、検索作業をするために多くの面(日付、著者、分類用語など)を追加します正確にあなたが好きな!
次のステップ
ホスティングプロバイダは、あなたのサイトが使用するのApache Solr検索のコアを提供していない場合は、サイトのSolr検索のコアをホストするためにホストのApache Solrのを使用して検討する必要があります。それはDrupalのVMで使用しているものと同様の設定を使用しています、と私はサービスを実行するので、私は、それを保証することができます:)
検索APIモジュールは、このブログの記事のようにまだベータ版であることに注意してください。マイナーの詳細は、上記のスクリーンショットと説明書との違いをもたらすことができます。
あなたの包括的な指示してくれてありがとう。私はそれを介して自分の道を働いていますし、スキーマに少しこだわって頂いております。私は浮浪者、仮想箱を設置し、Solrの持つDrupalのサイトの稼働を持っています。私はDrupalの中のSolrサーバのページを見たときにでも、私のスキーマは、例えば、データ駆動型・スキーマではなく、あなたのウェブサイトのようにdrupalの-4.5-Solrの-5.xのです。また、私は言ってdrupalの中で私のSolrサーバページの一番上に告知を持っている「あなたは互換性がないのschema.xmlの設定ファイルを使用している。Solrのを設定するためのinstall.txtファイルの指示に従ってください。」しかし、私はINSTALL.TXT言及のスキーマへの参照を見ることができません。私は、スキーマが浮浪者の設定ファイルにリストされている場所を確認しようとしましたが、何も見ることができません。あなたは私が変更するに行かなければならないところに私を導くことができます。
私はwindows10マシン上でこれを実行しています。私はあなたの浮浪者、ファイルのようにSolr 5.5を試してみました、ともSolrの6.3試してみました
事前に任意の助けてくれてありがとう。
GH
フォローアップのために、私はは/ var / Solrの/データ/ collection1 / confの内のすべてのファイルを削除することにより、問題の上解決/と/ var / www /のdrupalvm / drupalの/ウェブ/モジュール/のcontrib / search_api_solr / Solrのからすべてのファイルをコピーします-conf / 6.xの/前のディレクトリを言及します。これは、彼らが「Solrのを開始する前に」の話をエリア内のモジュールに/ contrib / search_api_solr / INSTALL.TXTでファイル内に言及されています。私はSolrのとちょうどリフレッシュを開始した後にこれをしました。