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

同義語セット

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

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

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

要求事項と制限事項

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

Elasticsearch でサポートされている => 形式 は、同義語セット UI ではサポートされていません。

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

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

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

  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_バレンシア
中国語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

お使いのバージョンでサポートされている言語を確認するには、 ElasticsearchOpenSearchのインデックス設定を調べます。

重要

すぐに使用できる言語に カスタム同義語言語フィルター がある場合は、アップグレード時にカスタム構成を削除し、完全または同時の再インデックスを実行します。

新しいシノニム言語フィルタの作成

入手方法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 ファイルの中にあります。 ここでは、新しいフィルター my-synonym-filter-daを使用する custom_liferay_analyzer_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 そして、レスポンスの中にあなたのアナライザー名を探します。 たとえば、 localhostで実行され、会社 ID 89152139855705の Liferay DXP サーバーのサイドカー Elasticsearch サーバーのインデックス設定を表示するには、 http://localhost:9201/liferay-89152139855705/_settingsにアクセスします。

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

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

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

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

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

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

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