SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Liferay 6.2を使ったWebコンテンツの作り方

Liferayの標準機能を使った検索機能の実装

Liferay 6.2を使ったWebコンテンツの作り方 第2回

start.jspの変更についての説明

 start.jspの中では、buildFacetForSearchというコールバックの中でFacet Search用のパラメータを組み立てています。例えば間取りのFacetパラメータは

var ROOM_LAYOUT_FACET = "ddm/" + structure_id + "/room_layout_ja_JP:"

となっていますが、このFacetパラメータはどのように取得しているのでしょうか? それにはLuceneのインデックスを調べる必要があります。Luceneのインデックスを見るのに、Lukeというツールがあるので、これを使いましょう。

 ここより最新版を取得してきて、適当なディレクトリに展開しましょう。現在の最新版はAlpha 4.0.0なので、lukeall-4.0.0-ALPHA.jarというファイルが展開されました。実行するにはコマンドラインより以下のようにして起動します。

java –jar lukeall-4.0.0-ALPHA.jar
Luke初期状態

 Open in Read-Only modeとForce unlock, if lockedの両方にチェックをつけ、左上のBrowse...ボタンを押下して、自分のLiferayを展開している環境から、Luceneのインデックスフォルダを指定します。

 LiferayではLuceneのインデックスはデフォルトで/data/luceneの下に展開されます。みなさんの環境によってフォルダ名は変わりますが、筆者の環境では/data/lucene/10157のフォルダを指定しました。

Lukeディレクトリ指定

 左のリストにインデックスのプロパティが表示されます。賃料はrentというフィールドを作りましたが、インデックスの中に/ddm/数字/rent_ja_JPといった感じで、rent + 言語コードの組み合わせでインデックスされていることが分かります。

 ddm/10906/rent_ja_JPを左のリストで指定して、画面真ん中の「Show top terms」を指定すると、右側にインデックスされている内容が表示されます。

LukeのIndexビュー

 今回は日本語のみなので、rent_ja_JPを対象としてFacet Searchを掛けようと思います。

Facet Searchとは?

 ファセット・サーチは、ファセット・ナビゲーションとも呼ばれています。LiferayではJavaのコードを書く以外にも、Webコンテンツ検索では、検索クエリから、Liferayに標準搭載されているLuceneのFacet Searchを利用することができます。

 Solrを使用すると、クラスタリングでの拡張性やインデックス管理も比較的容易で、検索も使いやすくなります。LiferayはSolr4用にプラグインを無料で、マーケットプレイスで提供しているので、そちらを使用するとSolrとの連携は比較的簡単にできます。

 LiferayはデフォルトではLuceneでインデックスを行っていますが、3ノード以上のクラスタリングは、パフォーマンスに問題が出てくるので、そうした規模でインデックスを考慮する必要がある場合は、LiferayデフォルトのLucene単体ではなく、SolrやElastic Searchなど、大規模使用を考慮したソフトウェアの使用をおすすめします。

次のページ
新規Web Contentsの作成

修正履歴

この記事は参考になりましたか?

Liferay 6.2を使ったWebコンテンツの作り方連載記事一覧

もっと読む

この記事の著者

竹生 泰之(日本ライフレイ株式会社)(タケオ ヤスユキ)

日本ライフレイ勤務。官公庁向け制御系システム開発、複合機のユーザーインターフェース開発、CRMのWebアプリケーションエンジニアを経て、現在はWebポータル/イントラネットのオープンソースアプリケーション、Liferayのコミュニティマネージャ/コンサルタントとして活動中。BMX(バイシクルモトクロス、20インチのレース/トリック用自転車)のフラットランド全日本選手権、King of Groundを1998年から運営し、BMX専門誌、Encounter Magazineの編集長も務め、撮影、執筆、翻訳、DTP全てを自ら手掛けるなど、プライベートでもマルチに動いている。・日本ライフレイユーザー会ライフレイ

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/7769 2014/05/28 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー