同義語セット
変更通知を受け取る(購読する)
同義語セットとは、同じ意味を持つ単語やフレーズを集めたものです。 管理者であるユーザーが同義語セットを作成し、検索ページのエンドユーザーがキーワードやフレーズを検索すると、セット内の同義語も検索されます。
たとえば、ユーザーが「US」という単語を検索するとします。 ほとんどの場合、ユーザーはAmerica、U.S.A、United Statesなどの同義語も含む検索結果を求めています。 同義語セットを作成することで、ユーザーが検索を最大限に活用できるようになります。
同義語セットを使用する際には、留意すべき要件と制限事項がいくつかあります。 詳細については、 要件と制限事項 を参照してください。
同義語セットの作成と管理
必要な数の同義語キーワードをセットに追加して、同義語セットを作成します。 シノニムセットが保存されると、同じ会社スコープ(シノニムが設定された仮想インス タンスの任意のサイト)での検索が有効になります。
新しい同義語セットを作成するには、
-
グローバルメニュー(
)から、 アプリケーション → 検索チューニング → 同義語 に移動します。![グローバルメニューの[同義語]セクションに移動します](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_VALENCIA |
| 中国語 | 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ファイルの中にあります。 ここでは、custom_liferay_analyzer_daという名前の新しいアナライザーを作成しています。このアナライザーは、新しいフィルターmy-synonym-filter-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そして、レスポンスの中にあなたのアナライザー名を探します。 例えば、会社 ID89152139855705を持つ、localhostで実行されている Liferay DXP サーバーのサイドカー Elasticsearch サーバーのインデックス設定を確認するには、 http://localhost:9201/liferay-89152139855705/_settings にアクセスします。
新しいフィルターが動作していることを確認するため。
-
Synonymsアプリケーションに移動します。グローバルメニューのアプリケーションタブから、 Synonyms (「検索チューニング」の下)をクリックします。
-
新しいシノニム セットを作成します:
bolig, hjem。 -
英語とデンマーク語の翻訳を含むウェブコンテンツ記事を作成します。 デンマーク語のタイトルに bolig を追加します。
-
英語とデンマーク語の翻訳を含む別のウェブコンテンツ記事を作成します。 デンマーク語のタイトルに hjem を追加します。
-
デンマーク語のロケールに切り替えて、 bolig を検索してください。 両方の記事が返されます。

要求事項と制限事項
同義語セットを使用する際には、注意すべきいくつかの制限事項があります。
-
シノニムは、Liferay CMSエンティティを含むカスタムオブジェクトやシステムオブジェクトでは機能しません。
-
最大10,000件の同義語セットを追加できます。
-
Solrを検索エンジンとして使用する場合、同義語セットはサポートされていません。 Elasticsearch のインストール方法については、 Elasticsearch 入門 を参照してください。
-
Elasticsearch でサポートされている
=>形式 は、Synonyms Set UI ではサポートされていません。