同義語セット
変更通知を受け取る(購読する)
同義語セットとは、同じ意味を持つ単語やフレーズを集めたものです。 管理者であるユーザーが同義語セットを作成し、検索ページのエンドユーザーがキーワードやフレーズを検索すると、セット内の同義語も検索されます。
たとえば、ユーザーが「US」という単語を検索するとします。 ほとんどの場合、ユーザーはAmerica、U.S.A、United Statesなどの同義語も含む検索結果を求めています。 同義語セットを作成することで、ユーザーが検索を最大限に活用できるようになります。
要求事項と制限事項
検索エンジンとして Solr を使用する場合、同義語セットはサポートされません。 Elasticsearch のインストール方法については、 Elasticsearch 入門をご覧ください。
Elasticsearch でサポートされている => 形式 は、同義語セット UI ではサポートされていません。
同義語セットの作成と管理
必要な数の同義語キーワードをセットに追加して、同義語セットを作成します。 同義語セットを保存すると、同じ会社スコープ (同義語が設定された 仮想インスタンス の任意のサイト) 内の検索が有効になります。
新しい同義語セットを作成するには、
-
グローバル メニュー (
) から、 アプリケーション → 検索調整 → 同義語に移動します。![グローバルメニューの[同義語]セクションに移動します](https://resources.learn.liferay.com/images/dxp/latest/en/search/search-administration-and-tuning/synonym-sets/images/01.png)
-
新しい同義語セットを追加するには、 追加 アイコン (
) をクリックします。 -
セット内の同義語のリストを入力します。 同義語の入力は、Enterをクリックするか、カンマを入力することで行います。

-
同義語の横にある[X]をクリックすると、同義語を削除できます。 セットが終わったら、[公開]をクリックします。
-
セットを編集または削除するには、 アクション アイコン (
) をクリックし、 編集 または 削除をクリックします。
同義語セットが公開されると、使用できるようになります。
同義語セットの使用
セットに保存した同義語キーワードの1つを検索することで、同義語セットをテストできます。 キーワードと同義語に一致する結果が検索結果ウィジェットに返されます。

上記の例では、月面探査車に関するこのブログ記事には LRV という単語は含まれていませんが、検索結果の一致として返されます。 同義語が強調表示されていることにも注目してください。
重要なのは、同義語セット内の各同義語 (単語またはフレーズ) は、ユーザーが検索バーに入力する検索キーワードのように処理されることです。 サポートされているロケールでの全文検索では、同義語は言語フィルターによって分析されます。 結果のトークンは、ローカライズされたフィールドに一致する検索に挿入されます。 同義語でサポートされているすぐに使用できる言語については、 「同義語とローカリゼーション」 を参照してください。新しい言語を追加するには、 「新しい同義語言語フィルターの作成」 を参照してください。
同義語とローカリゼーション
Liferay DXP 2024.Q4より前では、同義語セットは英語またはスペイン語のロケールにインデックスが付けられたフィールドでのみ機能していました。 2024年第4四半期から、同義語グラフフィルターがより多くの言語ですぐに使用できるようになります。
| 言語 | ロケールコード |
|---|---|
| ポルトガル語(ブラジル) | pt_BR |
| ポルトガル語(ポルトガル) | pt_PT |
| イタリア語 | it_IT |
| アラビア語(サウジアラビア) | ar_SA |
| カタロニア語(スペイン) | ca_ES |
| カタロニア語(アンドラ) | ca_AD |
| カタロニア語(スペイン、バレンシア) | ca_ES_バレンシア |
| 中国語 | zh_CN |
| 台湾語 | zh_TW |
| オランダ語(オランダ) | nl_NL |
| オランダ語 (ベルギー) | nl_BE |
| 英語(米国) | en_US |
| フィンランド語(フィンランド) | fi_FI |
| フランス語(フランス) | fr_FR |
| フランス語(カナダ) | fr_CA |
| ドイツ語(ドイツ) | de_DE |
| ハンガリー語(ハンガリー) | hu_HU |
| 日本語(日本) | ja_JP |
| スペイン語(スペイン語) | es_ES |
| スウェーデン語(スウェーデン) | sv_SE |
お使いのバージョンでサポートされている言語を確認するには、 Elasticsearch と OpenSearchのインデックス設定を調べます。
すぐに使用できる言語に カスタム同義語言語フィルター がある場合は、アップグレード時にカスタム構成を削除し、完全または同時の再インデックスを実行します。
新しいシノニム言語フィルタの作成
入手方法Liferay DXP 7.3 FP2およびLiferay DXP 7.2 FP13
追加の言語のサポートを追加するには、以下の構成手順を使用します。
-
デフォルトの デンマーク語 アナライザーを必要な変更を加えて再実装し、 カスタム アナライザー を作成します (パイプラインに追加の シノニム グラフ トークン フィルター を含めます)。
-
コネクタ構成の追加インデックス設定を使用して、カスタム・アナライザー定義をインデックス設定に追加します。
-
コネクタ構成の[タイプマッピングを上書き]設定を使用して、Liferay DXPのデフォルトのタイプマッピングをオーバーライドして、目的のフィールドにカスタム・アナライザーを適用します。
-
新しい設定を適用するには、インデックスを再作成します。
最新バージョンですぐにサポートされている言語に対して カスタム同義語言語フィルター がある場合は、アップグレード時にカスタム構成を削除し、完全または同時の再インデックスを実行します。
前提条件: デフォルトのマッピングを取得し、デンマーク語の翻訳を有効にする
カスタマイズする前に、Elasticsearch コネクタのデフォルトの JSON マッピングを取得する必要があります。
実行中のLiferayからマッピングを取得するには、
-
グローバル メニュー (
) を開き、 コントロール パネル → 検索に移動します。 -
フィールド マッピング タブをクリックします。
-
マッピング (
) をコピーして保存します。
インデックスのマッピングや設定は、バージョン間で変更されることがあり、場合によっては(Fix PackやService Packによって)マイナーバージョンの中でも変更されることがあります。 マッピングや設定のカスタマイズは、アップグレードや新しいパッチレベルへの移行時に見直し、必要に応じて対応する必要があります。 さらに、Liferay の検索チームは、将来のバージョンでさらに多くの言語のサポートをすぐに利用できるようにして、カスタマイズが不要になるようにする予定です。
さらに、Liferay インスタンスでデンマーク語を有効にする必要があります。
-
インスタンス設定 → ローカリゼーションを開きます。 グローバル メニュー (
) から、 コントロール パネル → インスタンス設定 → ローカリゼーションをクリックします。 -
デンマーク語 (デンマーク) を [使用可能な言語] 列から [現在] 列に移動します。
-
[保存]をクリックします。
言語の追加
デフォルトのマッピング ファイルが作成されたので、必要な変更を加えて、デンマーク語の同義語に必要な設定を追加します。
-
Elasticsearch 接続のシステム設定エントリ—Elasticsearch 6/7 に移動します。
-
追加インデックス設定フィールドに、
の解析ブロックを追加します。{ "analysis": { "analyzer": { "custom_liferay_analyzer_da": { "filter": [ "lowercase", "my-synonym-filter-da", "danish_stemmer", "danish_stop" ], "tokenizer": "standard" } }, "filter": { "my-synonym-filter-da": { "lenient": true, "synonyms": [], "type": "synonym_graph" }, "danish_stemmer": { "type": "stemmer", "language": "danish" }, "danish_stop": { "type": "stop", "stopwords": "_danish_" } } } }この構成で設定を追加すると、すぐに使用できるインデックス設定で使用できる設定が拡張されます。 デフォルトのJSON設定は、ソースコードの
index-settings.jsonファイルの中にあります。 ここでは、新しいフィルターmy-synonym-filter-daを使用するcustom_liferay_analyzer_daという新しいアナライザーを作成しています。synonymsの配列は今のところ空です。UIで作成したシノニムセットはここに表示されます。 -
コピーしたマッピング ファイルを変更します。 開き中括弧
{はそのままに、2 行目と 3 行目 (インデックス名の行とマッピングの行) は完全に削除します。"liferay-[COMPANY_ID]": { "mappings" : {次に、マッピングの最後から、最後の2つの中括弧を削除します。
} }注Liferay 7.4 U80 以前の場合、JSON ファイルの先頭に
LiferayDocumentType宣言を含める必要があります。 例えば、 Liferay 7.4 GA80 マッピングを参照してください。 -
「Override Type Mappings」フィールドを使用して、
template_da動的フィールドのアナライザーを、カスタムアナライザー(custom_liferay_analyzer_da)を使用するように変更します。重要この例は、簡潔にするために切り取られています。 Override Type Mappingsは、Liferayのデフォルトの型マッピングを完全にオーバーライドして無視しますので、オーバーライドされた部分だけでなく、完全なマッピングファイルを提供する必要があります。
{ "date_detection": false, "dynamic_templates": [ // (...) { "template_da": { "mapping": { "search_analyzer": "custom_liferay_analyzer_da", "store": true, "term_vector": "with_positions_offsets", "type": "text" }, "match" : "\\w+_da\\b|\\w+_da_[A-Z]{2}\\b", "match_mapping_type": "string", "match_pattern": "regex" } }, // (...)ここでの重要な変更は、デフォルトで割り当てられたアナライザー (
danish) がカスタム アナライザーcustom_liferay_analyzer_daに置き換えられていることです。 -
設定の変更を保存します。
ヒントSidecar Elasticsearch サーバーを使用している場合、コンソールにエラーが表示されることがあります。 Liferay DXPを再起動すると問題が解決します。
-
次に、「システム設定」→「検索」→「同義語」に移動します。
-
カスタム フィルター名 (例:
my-synonym-filter-da) をフィルター名設定に追加し、構成を保存します。 -
完全または同時再インデックスを実行します。コントロール パネル → 検索 → インデックス アクションで、すべての検索インデックスの 再インデックス をクリックします。
カスタム マッピングが正常に適用されたことを確認するには、[フィールド マッピング] タブに移動し、インデックス (たとえば、
liferay-89152139855705) を選択して、右側のパネルでtemplate_daを探します。カスタムアナライザーを含む追加インデックス設定も追加されていることを確認するために、Elasticsearchに対して以下のAPIコールを行います。
http://<host>:<port>/liferay-[company-id]/_settingsそして、レスポンスの中にあなたのアナライザー名を探します。 たとえば、localhostで実行され、会社 ID89152139855705の Liferay DXP サーバーのサイドカー Elasticsearch サーバーのインデックス設定を表示するには、 http://localhost:9201/liferay-89152139855705/_settingsにアクセスします。
新しいフィルターが動作していることを確認するため。
-
Synonymsアプリケーションに移動します。グローバルメニューのアプリケーションタブから、 Synonyms (「検索チューニング」の下)をクリックします。
-
新しいシノニム セットを作成します:
bolig, hjem。 -
英語とデンマーク語の翻訳を含む Web コンテンツ記事を作成します。 デンマーク語のタイトルに bolig を追加します。
-
英語とデンマーク語の翻訳を含む別の Web コンテンツ記事を作成します。 デンマーク語のタイトルに hjem を追加します。
-
デンマーク語のロケールに切り替えて、 boligを検索します。 両方の記事が返されます。
