検索ストップワードの設定
一般的に、ストップワードは、検索エンジンがテキストを処理した後に除外する一般的な単語です。 もともと、ディスク容量とメモリが非常に限られていたときは、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分です。
既存のロケールのストップワードの編集
ストップワードを編集するには:
-
Commerce サーバーにログインするか、 ファイルシステム所有者に切り替えます。
-
テキストエディターを使用して、
<magento_root>/vendor/magento/module-elasticsearch/etc/stopwordsディレクトリでストップワードファイルを開きます。CSV ファイルでは、命名規則
stopwords_<locale_code>.csvが使用されます。 例えば、ドイツ語のストップワードファイルの名前はstopwords_de_DE.csvです。 -
ファイル内の単語の追加、単語の削除、または単語の変更。
(ファイル内の各ストップワードは新しい行から始まります)。
-
変更を保存し、テキストエディターを終了します。
-
設定キャッシュをクリーニングします。
-
管理者:システム > ツール > キャッシュ管理。 「設定」チェックボックスを選択し、その上のリストから「更新」をクリックします。 「送信」をクリックして、アクションを完了します。
-
コマンドライン:ファイルシステムの所有者として、次のコマンドを入力します。
code language-shell php <magento_root>/bin/magento cache:clean config
-
-
ストアフロントで条件を検索して、結果を確認します。
新しいロケールのストップワードの作成
ロケールのストップワードを追加するには:
-
Commerce サーバーにログインするか、 ファイルシステム所有者に切り替えます。
-
テキストエディターを使用して、
<magento_root>/vendor/magento/module-elasticsearch/etc/stopwordsディレクトリにstopwords_<locale_code>.csvという名前のストップワードファイルを作成します。例えば、イタリア語ロケールのストップワードを作成するには、ファイルに
stopwords_it_IT.csvという名前を付けます。 -
ストップワードファイルでは、各ストップワードが別々の行にあることを確認します。
-
変更を保存し、テキストエディターを終了します。
-
同じディレクトリで、テキストエディターで
esconfig.xmlを開きます。 -
次のように
esconfig.xmlに行を追加します。code language-xml <LOCALE_CODE>stopwords_LOCALE_CODE.csv</LOCALE_CODE>例えば、イタリア語のストップワードファイルを追加するには、次の行を追加します。
code language-xml <it_IT>stopwords_it_IT.csv</it_IT> -
変更を
esconfig.xmlに保存し、テキストエディターを終了します。 -
設定キャッシュをクリーニングします。
-
管理者:システム > ツール > キャッシュ管理。 「設定」チェックボックスを選択し、その上のリストから「更新」をクリックします。 「送信」をクリックして、アクションを完了します。
-
コマンドライン:ファイルシステムの所有者として、次のコマンドを入力します。
code language-shell php <magento_root>/bin/magento magento cache:clean config
-
-
ストアフロントで条件を検索して、結果を確認します。
ストップワードディレクトリの変更
この節では、オプションでデフォルトのストップワードディレクトリを次のいずれかから変更する方法について説明します。
<magento_root>/vendor/magento/module-elasticsearch/etc/stopwords<magento_root>/app/code/Magento/Elasticsearch/etc/stopwords/
場所は、Commerce ソフトウェアのインストール方法によって異なります。 Magento 2 GitHub リポジトリをクローンした場合、パスはapp/codeの下にあります。 圧縮アーカイブまたはメタパッケージをインストールした場合、パスはvendor未満です。
ディレクトリを変更するには:
-
ファイルシステムの所有者として、テキストエディターでElasticsearch
di.xmlを開きます。リポジトリを複製した場合、リポジトリは
app/code/Magento/Elasticsearch/etc/di.xmlにありますアーカイブまたはメタパッケージを取得した場合、そのアーカイブは
vendor/magento/module-elasticsearch/etc/di.xmlにあります -
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> -
変更を
di.xmlに保存して、テキストエディターを終了します。
モジュールからディレクトリを変更するには
-
モジュール
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> -
モジュールで、対応するCSV ファイルを含むディレクトリ
etc/stopwordsを作成します。 -
変更を
di.xmlに保存して、テキストエディターを終了します。