Posted by junko_m on February 17, 2017 at 12:05pm
初めて質問させていただきます。
Drupal 7.x、DKAN、Solr search (search_api_solr)モジュール、
Solr(5.4.1)を使って、サイトにアップロードしたドキュメントの全文検索を実現しようとしています。
パブリック領域へのアップロードしたファイルについては全文検索ができるようになったのですが、
ダウンロード数を集計しようと、アップロード先をプライベート領域に変更したところ、
Solrインデックスが作成できていないようで、検索ができなくなってしまいました。
(インデックス作成時に特にエラーは表示されません。)
そもそも、プライベート領域にアップロードされたファイルへのインデックス作成はできないのでしょうか?
それとも、プライベート領域を利用する際の設定が不足しているのでしょうか?
何かご存知の方いらっしゃいましたら、アドバイスをいただけませんでしょうか?
よろしくお願いします。
Comments
確か、プライベートファイルシステム上のファイルをインデック
確か、プライベートファイルシステム上のファイルをインデックス(検索)できないということはなかったと思います。
しかし、検索を実行するユーザーがそのプライベートなファイルへのアクセス権を持たない場合、検索にはヒットしない、という動きになります。
単にインデックスされていないのか、Drupal側のアクセス制御で弾かれているか切り分けてみるのがよと思いますので、Drupalからではなく、solr自体のadmin UIからファイル内のワードで検索してヒットするか、まずは確認してみてはどうでしょうか?
sites/defaut/files直下のファイルのみにインデックスが作成されているようです
アドバイスありがとうございます。
solrからクエリをかけてみたところ、ヒットしていませんでした。
sites/default/files直下のファイルのみにインデックスが作成されているようです。
設定は以下のようになっています。
プライベートファイルの設定:
・Configuration > Media > File systemにおいて、[Private file system path]にパスを設定。
・sites/default/files/private というパスを設定、書き込み権限を設定。
コンテンツタイプの設定:
・Upload destinationを[Private files]に設定。
ファイルをアップロードすると[Private file system path]に設定したパスにファイルが格納されています。
drush コマンドにおいて、インデックスのクリアと作成を実行しています。
drupal側にfiles直下以外のディレクトリを認識させる方法のようなものがあるのでしょうか?
解決しました
設定が不足していました。
設定を再確認していたところ、
Solrのインデックス設定に、[プライベートファイルを除く]という項目がありました。
Configuration > Search and metadata > Search API > Solr Index
[Filters]タブ
[File attachments] - [Exclude private files]
このチェックを外してインデックスを再作成したところ、Solrからのクエリにヒットするようになりました。
壁に行き当たってしまい、調査が全くはかどらなかったところ、切り分けのアドバイスをいただいたことで、設定を見直す、というところにたどりつくことができました。
ありがとうございました。