配置搜索停用词

通常,非索引字 ​是搜索引擎在处理文本后过滤掉的常用字。 最初,当磁盘空间和内存极其有限时,每保存1 KB就意味着显着提高了性能。 因此,搜索引擎通过忽略某些词语和保持较小的索引来实现性能提升。

尽管我们今天拥有更多存储,但性能仍然很重要。 与其他搜索引擎一样,Elasticsearch和OpenSearch仍使用停用词来提高性能。

您必须使用位于<magento_root>/vendor/magento/module-elasticsearch/etc/stopwords目录或<magento_root>/app/code/Magento/Elasticsearch/etc/stopwords/目录中的CSV文件管理停用词,具体取决于您安装Commerce软件的方式。

有关Elasticsearch和OpenSearch如何使用停用词的更多信息,请参阅以下资源:

配置停用词

非索引字位于<magento_root>/vendor/magento/module-elasticsearch/etc/stopwords目录中。 Adobe Commerce随附一个CSV文件,其中包含默认区域设置的停用词,以及另一个文件stopwords.csv,其中包含其他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软件的方式。 如果您克隆了Magento2 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