[Sitecore][solrインデックス]ファイルフィールドがインデックスされない

概要:

サイトコア9.2にアップグレードしてから、ファイルフィールドがインデックスされない問題のトラブルシューティングについてのクイックメモです。

———————————————————————————————

検証環境は次の通りです。

  • Sitecore 9.2.0

問題

サイトコア9.2にアップグレード,PDFファイルをダウンロードするリンクが表示されなくなりました。テンプレートをみるには、サイトコアのファイルフィールドを使用し、PDFのファイルを指定し、ダウンロードするようになっています。

2020-06-15_Monday_01

SolrAdminにてこの”Download PDF”ファイルをスキーマにて確認したところ、存在していないことをわかりました。

コードをみたところ、フィールドを追加する設定がちゃんと有りますし、

”Raw values”にてフィールドの値を見るには、上記の設定で、テキストそしてインデックスされるはずです。

2020-06-15_Monday_02

どこがの設定が間違っているのかなぁ戸惑ったところで、ディフォルトのサイトコア9.2にてどのようなの動作しているのかを比べればいいのではと思いました。

 

サンプルをアイテムのテンプレートにてテスト用のファイルフィールドを追加し、

 2020-06-15_Monday_03 

テスト用の値を設定して、

2020-06-15_Monday_04

 

Populate Solr Managed Schema を使って、マスターデータベースのスキーマを更新してから、マスターデータベースを再構築して、そして、Solrのサービスを再起動します。これで、TestFileがスキーマに追加されることを期待してながら、SolrAdminにて確認したところ、やはり追加されていない。

 

以前のサイトコアのバージョンで別のお客さんのサイトサーチする際に、PDFのファイルの内容をテキストとしてインデックスする作業があったことを思い出して、カスタムPDFのファイルリーダーが必要なのかなぁと思った。ディフォルトのサイトコア9.2にて、ファイルリーダーの設定を見ると、ディフォルトのファイルたタイプはSitecore.ContentSearch.FieldReaders.NullFieldReader, Sitecore.ContentSearchを使用しています。これじゃスキーマに追加されていないのもおかしくないです。

  2020-06-15_Monday_05

 

フィールタイプがファイルの場合はディフォルトのSitecore.ContentSearch.FieldReaders.DefaultFieldReaderを使うように変更して、”Populate Solr Managed Schema を使って、マスターデータベースのスキーマを更新してから、マスターデータベースを再構築して、そして、Solrのサービスを再起動します。

2020-06-15_Monday_05

 

再度SolrAdminにて確認をしたところ、ファイルフィールドがスキーマに追加され、フィールの”Raw values”テキストとしてインデックスされたことを確認しました。2020-06-15_Monday_07

 

原因とサマリー

結局、PDFファイルをダウンロードするリンクが表示されなくなった理由は、サイトコア9.2にアップグレードされ、ディフォルトのファイルフィールのタイプであるSitecore.ContentSearch.FieldReaders.NullFieldReaderが使用されていることで、ファイルタイプのフィールドがスキーマに追加されないことが原因でした。