はじめに
LiferayはOSSのJavaベースのウェブポータル・システム開発基盤です。2004年から開発が始まり、世界のさまざまな業種にディーラーポータル、カスタマーポータル、またB2Bコマースとして導入されています。
Liferay 7.4はデフォルトでElasticsearchを検索エンジンとして利用しており、同義語(Synonym)を設定することができます。今回は日本語の同義語を設定する方法を紹介します。
公式ドキュメントに同義語の設定があります。このドキュメントではLiferayを立ち上げた後に、詳細に実際に動作させる部分にのみ注目して説明しています。詳しくはこちらを参照ください。
前提
ステップ
- 管理者でログイン、コントロールパネル -> システム設定 -> 検索へ移動
- 左メニューから
Elasticsearch7
を選択、追加インデックス設定
にこのgistのindex-settings.json
を貼り付けます。 - 次に
タイプマッピングを上書き
に同じgistのliferay-type-mappings.json
の内容を貼り付けます。 - 画面の一番下までスクロールして保存します。
するとLiferayを起動しているコンソール上に以下のようなログが出て、Elasticsearchが再起動されるはずです。2022-04-27 08:41:49.554 INFO [CM Event Dispatcher (Fire ConfigurationEvent: pid=com.liferay.portal.search.elasticsearch7.configuration.ElasticsearchConfiguration)][Sidecar:132] Stopping sidecar Elasticsearch 2022-04-27 08:42:04.478 INFO [CM Event Dispatcher (Fire ConfigurationEvent: pid=com.liferay.portal.search.elasticsearch7.configuration.ElasticsearchConfiguration)][Sidecar:119] Sidecar Elasticsearch liferay started at 127.0.0.1:9201
- 次に左側のメニューから
同義語
に移動します。 - ここで2行目の
同義語フィルター
のところに青い丸プラスボタンがあるので、それをクリックすると、テキストエリアが1つ下に追加されます。そこにliferay_filter_synonym_ja
と入力して保存します。 - 続いて
コントロールパネル -> 検索 -> インデックス管理
で検索インデックスを再構築します。
で全インデックス再構築を行います。左上のロゴ横にローディングマークが表示されるはずです。それが消えたら再構築完了です。 -
アプリケーション -> 同義語
で同義語を設定します。例えば、都心
、東京
とリターンキーを押すたびにラベル化されるので、それで保存します。 - 続いてWebコンテンツを作ってみましょう。日本語モードにして(英語モードだと正しくインデックスされません)タイトルとコンテンツに
東京
と入力して保存します。 - もう一つ、同じく日本語モードでタイトルとコンテンツに
千葉
と入力してみます。 - デフォルトサイトのトップページに移動します。デフォルトだと右上に検索窓に
都心
とタイプして検索してみましょう。東京
がヒットするはずです。