[Sitecore 8][Luke][Lucence]Lukeを使ってサイトコア8のLucenceインデックスの内容を確認する
概要:Luke というツールを使用し、サイトコア8の Lucene インデックスの値を確認したり、またフィールドを追加して、中身を確認したりするメモ書き
検証環境は次の通りです。
- Sitecore 8.0(rev.10922)
- Luke 3.5.0
LukeはLuceneのインデックスブラウザで日本語でLukeについての記事がないかを検索したら、この記事をみてLukeを使ってインデックスを確認するについてもう少し書いてみたいと思いました。Lukeのダウンロード、インストールは上記の方の記事に詳しく書かれているのでここでは重複しません。ここではLukeを使ってインデックスの追加や確認手順のみを書きます。
既存のフィールドを確認する
アイテムを検索する
今日は自分が始めてLukeを使うユーザと想定して検索をしてみます。
どのバージョンでもインストール後、”Sample Item”があります。この”Sample Item”アイテムテンプレートを検索してみます。きっと簡単だろう。
Searchタブで検索したいキーワードを検索したいフィルドを選択すればいいのでは。。。
トライ2、やはり結果なし。。。ちゃんとパーザーされていたのに、なんで?
トライ3、小文字をしてみると結果があった。。。でもなんで?
インディクスのフィールドは通常.CONFIGで定義しているのでファイルで_templatenameで検索ををかけるとこのSitecore.ContentSearch.Lucene.DefaultIndexConfiguration.config設定ファイルにてフィールドの設定でアナライザーの設定をみつけました。
<field fieldName="_templatename" storageType="YES" indexType="TOKENIZED" vectorType="NO" boost="1f" type="System.String" SettingType=" Sitecore.ContentSearch.LuceneProvider.LuceneSearchFieldConfiguration, Sitecore.ContentSearch.LuceneProvider"> <analyzer type=" Sitecore.ContentSearch.LuceneProvider.Analyzers.LowerCaseKeywordAnalyzer, Sitecore.ContentSearch.LuceneProvider" /> </field>
アナライザーはLowerCaseKeywordAnalyzerを使用しているので小文字となっているわけです。これで納得です。さてと、もしアナライザーを変更すれば小文字でなくでもサーチができるはずのではと思ってアナライザーを変えて試しました。同じ結果を見つけた。
ついてですが、複数のキーワードで複数のフィールドを検索したいなら、こんな感じです。
フィールドを追加し確認をする
さて、簡単な検索ができたところで、簡単なフィールドを追加してサーチしてみましょう。SampleItem テンプレートに Single-Line Text フィールドを追加し、インディクスを再構築します。
で再度インディクスを開き、確認
Documentを開いてフィールドをみると、追加したフィールドが見えたらない。。。
ここに表示されたフィールドのリストは、「hydrate」というプロセスが利用できる値で、それは自動的にPOCOを移入プロセスです。もっと詳しい記事はここに
要するに保存タイプを指定する必要があります。
<fieldType fieldTypeName="single-line text" storageType="NO"...
ただこの変更だとすべてのsingle-line textタイプのフィールドがインディクスに保存されるので、追加されるフィルド別にその設定をしましょう。
ただこの変更だとすべてのsingle-line textタイプのフィールドがインディクスに保存されるので、フィルド別に設定をします。
/configuration/sitecore/contentSearch/configuration/DefaultIndexConfiguration/fieldMap/fieldNames
<field fieldName="zzzMyLocation" storageType="YES" indexType="TOKENIZED" ...
Tips:
再オープンで更新します。もし、再度Luke起動した場合はダウン印で以前したファイルを素早くリロードします。
まとめ:
私は最初にLukeを使用したのは2011年Alexさんのこの記事をみた時からです。検索にかかわる作業をする際にLukeは欠かせないツールです。ただ実際に使ったLukeの機能は上記で書かれているだけです。もし、別のLukeの活用テクニックを知っているならぜひ教えてください。