Hybris Storefront没有基于语言的搜索结果

2020-08-25 20:19发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家您好,

在我们的店面中,我们还有使用阿拉伯语维护的" wire"产品。 在店面搜索中,如果键入" wire",则会得到结果,显示所有描述中包含单词WIRE的产品。

但是,如果我搜索的是阿拉伯语翻译,则结果与阿拉伯语的描述不符。

我检查了SOLR配置,发现未对关键字" WIRE"或同义词进行任何特殊配置。 还有其他需要设置的设置吗?

哈西卜。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家您好,

在我们的店面中,我们还有使用阿拉伯语维护的" wire"产品。 在店面搜索中,如果键入" wire",则会得到结果,显示所有描述中包含单词WIRE的产品。

但是,如果我搜索的是阿拉伯语翻译,则结果与阿拉伯语的描述不符。

我检查了SOLR配置,发现未对关键字" WIRE"或同义词进行任何特殊配置。 还有其他需要设置的设置吗?

哈西卜。

付费偷看设置
发送
3条回答
黑丝骑士
1楼-- · 2020-08-25 20:59

填充搜索搜索查询时,它会使用当前会话语言:
de.hybris.platform.commerceservices.search.solrfacetsearch.populators.SearchSolrQueryPopulator#populate

 @Override
 public void populate(最终SearchQueryPageableData 源,
       最终SolrSearchRequest 目标)
 {
   //设置SolrSearchRequest
    target.setSearchQueryData(source.getSearchQueryData());
    target.setPageableData(source.getPageableData());

    final Collection  catalogVersions = getSessionProductCatalogVersions();
    如果(catalogVersions == null || catalogVersions.isEmpty())
    {
       抛出新的ConversionException("缺少solr facet搜索索引目录版本");
    }

    target.setCatalogVersions(new ArrayList (catalogVersions));

    尝试
    {
       target.setFacetSearchConfig(getFacetSearchConfig());
    }
    捕获(最终NoValidSolrConfigException e)
    {
       LOG.error("没有为当前上下文找到有效的solrFacetSearchConfig",e);
       抛出新的ConversionException("没有为当前上下文找到有效的solrFacetSearchConfig",e);
    }
    捕获(最终FacetConfigServiceException e)
    {
       LOG.error(e.getMessage(),e);
       抛出新的ConversionException(e.getMessage(),e);
    }

   //我们只能搜索一个核,因此选择索引类型
    target.setIndexedType(getIndexedType(target.getFacetSearchConfig()));

   //为配置创建solr搜索查询并键入(这将设置默认页面大小和排序顺序)
    SearchQuery searchQuery;

    如果(target.getFacetSearchConfig()。getSearchConfig()。isLegacyMode())
    {
       searchQuery = createSearchQueryForLegacyMode(target.getFacetSearchConfig(),target.getIndexedType(),
             source.getSearchQueryData()。getSearchQueryContext(),source.getSearchQueryData()。getFreeTextSearch());
    }
    其他
    {
       searchQuery = createSearchQuery(target.getFacetSearchConfig(),target.getIndexedType(),
             source.getSearchQueryData()。getSearchQueryContext(),source.getSearchQueryData()。getFreeTextSearch());
    }

    searchQuery.setCatalogVersions(target.getCatalogVersions());
    searchQuery.setCurrency(getCommonI18NService()。getCurrentCurrency()。getIsocode());
    searchQuery.setLanguage(getCommonI18NService()。getCurrentLanguage()。getIsocode());

   //启用拼写检查器
    searchQuery.setEnableSpellcheck(true);

    target.setSearchQuery(searchQuery);
 } 

如果使用的是当前语言,则将使用文档中相应的本地化属性(例如name_text_en)。如果要使用其他语言,请使用OOTB-可以通过网站上的语言选择器进行更改。

# p#

谢谢Igor,

我们确实在网站上提供了语言选择,只有切换到阿拉伯语后,我才尝试使用相同语言搜索产品。 问题在于搜索结果,其中搜索关键字与检索到的结果不匹配。

哈西卜。

宇峰Kouji
2楼-- · 2020-08-25 20:57