検索ストップワードの設定

一般に、ストップワード は、テキストを処理した後に検索エンジンが除外する一般的な単語です。 当初は、ディスク容量とメモリが非常に制限されていた場合、1 キロバイトの節約はパフォーマンスの大幅な向上を意味しました。 したがって、検索エンジンでは、特定の単語を無視してインデックスを小さく保つことで、パフォーマンスが向上しました。

現在はストレージ容量が増えていますが、パフォーマンスは依然として重要です。 Elasticsearchと OpenSearch は、他の検索エンジンと同様に、パフォーマンスを向上させるためにストップワードを使用します。

Commerce ソフトウェアのインストール方法に応じて、<magento_root>/vendor/magento/module-elasticsearch/etc/stopwords ディレクトリまたは <magento_root>/app/code/Magento/Elasticsearch/etc/stopwords/ ディレクトリにある CSV ファイルを使用してストップワードを管理する必要があります。

Elasticsearchと OpenSearch でストップワードが使用される仕組みについて詳しくは、次のリソースを参照してください。

ストップワードの設定

ストップワードは <magento_root>/vendor/magento/module-elasticsearch/etc/stopwords ディレクトリにあります。 Adobe Commerceには、デフォルトのロケールのストップワードを含んだ 1 つの CSV ファイルと、別の CSV ファイルで表されないロケールのストップワードを含んだ stopwords.csv という追加のファイルが付属しています。

ストップワードファイルキャッシュのデフォルトの有効期間は 15 分です。

既存のロケールのストップワードの編集

ストップワードを編集するには:

  1. Commerce サーバーにログインするか、 ファイルシステムのオーナーに切り替えます。

  2. テキストエディターを使用して、ストップワードファイルを <magento_root>/vendor/magento/module-elasticsearch/etc/stopwords ディレクトリで開きます。

    CSV ファイルでは、命名規則 stopwords_<locale_code>.csv を使用します。 例えば、ドイツ語のストップワードファイルの名前は stopwords_de_DE.csv です。

  3. ファイル内の単語を追加、削除、または変更します。

    (ファイルの各ストップワードは、新しい行で開始します)。

  4. 変更を保存し、テキストエディターを終了します。

  5. 設定キャッシュをクリーンアップします。

    • 管理者:システム/ツール/キャッシュ管理。 「設定」チェックボックスを選択し、その上のリストから「更新」をクリックします。 「送信」をクリックして、アクションを完了します。

    • コマンドライン:ファイルシステムの所有者として、次のコマンドを入力します。

      code language-bash
      php <magento_root>/bin/magento cache:clean config
      
  6. ストアフロントで用語を検索して、結果を確認してください。

新しいロケールのストップワードの作成

ロケールのストップワードを追加するには:

  1. Commerce サーバーにログインするか、 ファイルシステムのオーナーに切り替えます。

  2. テキストエディターを使用して、<magento_root>/vendor/magento/module-elasticsearch/etc/stopwords ディレクトリに stopwords_<locale_code>.csv というストップワードファイルを作成します。

    例えば、イタリア語ロケールのストップワードを作成するには、ファイルに stopwords_it_IT.csv という名前を付けます。

  3. ストップワードファイルで、各ストップワードが別々の行にあることを確認します。

  4. 変更を保存し、テキストエディターを終了します。

  5. 同じディレクトリで、テキストエディターで esconfig.xml を開きます。

  6. に行を次のように追加 esconfig.xml ます。

    code language-xml
    <LOCALE_CODE>stopwords_LOCALE_CODE.csv</LOCALE_CODE>
    

    例えば、イタリア語のストップワードファイルを追加するには、次の行を追加します。

    code language-xml
    <it_IT>stopwords_it_IT.csv</it_IT>
    
  7. 変更内容を esconfig.xml に保存し、テキストエディターを終了します。

  8. 設定キャッシュをクリーンアップします。

    • 管理者:システム/ツール/キャッシュ管理。 「設定」チェックボックスを選択し、その上のリストから「更新」をクリックします。 「送信」をクリックして、アクションを完了します。

    • コマンドライン:ファイルシステムの所有者として、次のコマンドを入力します。

      code language-bash
      php <magento_root>/bin/magento magento cache:clean config
      
  9. ストアフロントで用語を検索して、結果を確認してください。

ストップワードディレクトリの変更

この節では、デフォルトのストップワードディレクトリをオプションで次のいずれかから変更する方法について説明します。

  • <magento_root>/vendor/magento/module-elasticsearch/etc/stopwords
  • <magento_root>/app/code/Magento/Elasticsearch/etc/stopwords/

場所は、Commerce ソフトウェアのインストール方法によって異なります。 Magento 2 GitHub リポジトリのクローンを作成した場合、パスは app/code の下にあります。 圧縮されたアーカイブまたはメタパッケージをインストールした場合、パスは vendor 下になります。

ディレクトリを変更するには:

  1. ファイルシステムのオーナーとして、Elasticsearchdi.xml をテキストエディターで開きます。

    リポジトリのクローンを作成した場合は、app/code/Magento/Elasticsearch/etc/di.xml にあります。

    アーカイブやメタパッケージを入手した場合は、vendor/magento/module-elasticsearch/etc/di.xml にあります。

  2. stopwordsDirectory の値を目的のディレクトリに変更します。

    code language-xml
    <type name="Magento\Elasticsearch\SearchAdapter\Query\Preprocessor\Stopwords">
        <arguments>
            <argument name="stopwordsDirectory" xsi:type="string">app/code/Magento/Elasticsearch/etc/stopwords</argument>
        </arguments>
    </type>
    
  3. di.xml への変更を保存し、テキストエディターを終了します。

モジュールからディレクトリを変更するには

  1. モジュールの作成

  2. モジュールに、手順 etc/di.xml 追加します。

    code language-xml
    <type name="Magento\Elasticsearch\SearchAdapter\Query\Preprocessor\Stopwords">
        <arguments>
           <argument name="stopwordsModule" xsi:type="string">Your_Module</argument>
           <argument name="stopwordsDirectory" xsi:type="string">stopwords</argument>
        </arguments>
    </type>
    
  3. モジュールで、ディレクトリ etc/stopwords を、対応する CSV ファイルと共に作成します。

  4. di.xml への変更を保存し、テキストエディターを終了します。

recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c