Search Administration and Tuning
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、 こちら までご連絡ください。

同義語セット

変更通知を受け取る(購読する)

同義語セットとは、同じ意味を持つ単語やフレーズを集めたものです。 管理者であるユーザーが同義語セットを作成し、検索ページのエンドユーザーがキーワードやフレーズを検索すると、セット内の同義語も検索されます。

たとえば、ユーザーが「US」という単語を検索するとします。 ほとんどの場合、ユーザーはAmericaU.S.AUnited Statesなどの同義語も含む検索結果を求めています。 同義語セットを作成することで、ユーザーが検索を最大限に活用できるようになります。

警告

同義語セットを使用する際には、留意すべき要件と制限事項がいくつかあります。 詳細については、 要件と制限事項 を参照してください。

同義語セットの作成と管理

必要な数の同義語キーワードをセットに追加して、同義語セットを作成します。 シノニムセットが保存されると、同じ会社スコープ(シノニムが設定された仮想インス タンスの任意のサイト)での検索が有効になります。

新しい同義語セットを作成するには、

  1. グローバルメニュー(Global Menu)から、 アプリケーション検索チューニング同義語 に移動します。

    グローバルメニューの[同義語]セクションに移動します

  2. 新しい同義語セットを追加するには、 追加 アイコン(Click on the add icon)をクリックします。

  3. セット内の同義語のリストを入力します。 同義語の入力は、Enterをクリックするか、カンマを入力することで行います。

    異なる同義語をセットに入力します。

  4. 同義語の横にある[X]をクリックすると、同義語を削除できます。 セットが終わったら、[公開]をクリックします。

  5. セットを編集または削除するには、 アクション アイコン(Actions)をクリックし、 編集 または 削除をクリックします。

    編集または削除をクリックして変更を加えます。

    同義語セットが公開されると、使用できるようになります。

同義語セットの使用

セットに保存した同義語キーワードの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 からマッピングを取得するには、

  1. グローバルメニュー(Global Menu)を開き、 コントロールパネル検索に移動します。

  2. フィールドマッピング タブをクリックします。

  3. マッピング (Copy) をコピーして保存します。

警告

インデックスのマッピングや設定は、バージョン間で変更されることがあり、場合によっては(Fix PackやService Packによって)マイナーバージョンの中でも変更されることがあります。 マッピングや設定のカスタマイズは、アップグレードや新しいパッチレベルへの移行時に見直し、必要に応じて対応する必要があります。 さらに、Liferayの検索チームは、将来のバージョンでより多くの言語を標準でサポートするように計画しており、カスタマイズは不要になる予定です。

さらに、Liferayインスタンスでデンマーク語を有効にする必要があります。

  1. インスタンス設定 → ローカライズを開きます。 グローバルメニュー(Global Menu)から、 コントロールパネルインスタンス設定ローカライズ をクリックします。

  2. 利用可能な言語列から デンマーク語 (デンマーク) を現在の言語列に移動します。

  3. [保存]をクリックします。

言語の追加

デフォルトのマッピングファイルが用意できたので、デンマーク語の同義語に必要な設定を追加するために、必要な変更を加えてください。

  1. Elasticsearch接続のシステム設定エントリ—Elasticsearch 6/7に移動します。

  2. 追加インデックス設定フィールドに、 の解析 ブロックを追加します。

    {
        "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で作成したシノニムセットはここに表示されます。

  3. コピーしたマッピングファイルを修正してください。 開き括弧 {は残しますが、2 行目と 3 行目を完全に削除します (インデックス名を含む行と マッピング を含む行)。

    "liferay-[COMPANY_ID]": {
        "mappings" : {
    

    次に、マッピングの最後から、最後の2つの中括弧を削除します。

        }
    }
    

    Liferay 7.4 U80 以前のバージョンでは、JSON ファイルの先頭に LiferayDocumentType 宣言を含める必要があります。 例えば、 Liferay 7.4 GA80 マッピング を参照してください。

  4. 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 に置き換えられたことです。

  5. 設定の変更を保存します。

    ヒント

    Sidecar Elasticsearch サーバーを使用している場合、コンソールにエラーが表示されることがあります。 Liferay DXPを再起動すると問題が解決します。

  6. 次に、「システム設定」→「検索」→「同義語」に進みます。

  7. カスタムフィルター名(例: my-synonym-filter-da)をフィルター名の設定に追加し、設定を保存します。

  8. 完全または同時再インデックスを実行します。コントロール パネル → 検索 → インデックス アクションで、 すべての検索インデックスの再インデックス をクリックします。

    カスタムマッピングが正常に適用されたことを確認するには、[フィールドマッピング] タブに移動し、インデックス (たとえば、 liferay-89152139855705) を選択し、右側のパネルで template_da を探します。

    カスタムアナライザーを含む追加インデックス設定も追加されていることを確認するために、Elasticsearchに対して以下のAPIコールを行います。 http://<host>:<port>/liferay-[company-id]/_settings そして、レスポンスの中にあなたのアナライザー名を探します。 例えば、会社 ID 89152139855705を持つ、 localhostで実行されている Liferay DXP サーバーのサイドカー Elasticsearch サーバーのインデックス設定を確認するには、 http://localhost:9201/liferay-89152139855705/_settings にアクセスします。

新しいフィルターが動作していることを確認するため。

  1. Synonymsアプリケーションに移動します。グローバルメニューのアプリケーションタブから、 Synonyms (「検索チューニング」の下)をクリックします。

  2. 新しいシノニム セットを作成します: bolig, hjem

  3. 英語とデンマーク語の翻訳を含むウェブコンテンツ記事を作成します。 デンマーク語のタイトルに bolig を追加します。

  4. 英語とデンマーク語の翻訳を含む別のウェブコンテンツ記事を作成します。 デンマーク語のタイトルに hjem を追加します。

  5. デンマーク語のロケールに切り替えて、 bolig を検索してください。 両方の記事が返されます。

同義語が一致し、強調表示されます。

要求事項と制限事項

同義語セットを使用する際には、注意すべきいくつかの制限事項があります。

  • シノニムは、Liferay CMSエンティティを含むカスタムオブジェクトやシステムオブジェクトでは機能しません。

  • 最大10,000件の同義語セットを追加できます。

  • Solrを検索エンジンとして使用する場合、同義語セットはサポートされていません。 Elasticsearch のインストール方法については、 Elasticsearch 入門 を参照してください。

  • Elasticsearch でサポートされている => 形式 は、Synonyms Set UI ではサポートされていません。