云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

域名注册_金山云郭岚老公_学生机

小七 141 0

在Hybris后台,有两种主要的搜索类型:使用SOLR引擎的简单搜索和使用OOTB FlexibleSearchService的高级搜索。第一种方法搜索所有配置的SolrIndexedProperties,而第二种方法仅限于模型本身的一些属性(-项目.xml).

因此,没有任何功能提供对特定SOLR属性的更详细搜索。这种功能的可能应用是:

搜索动态属性搜索不属于高级搜索的非动态属性(例如多对多关系的属性部分)搜索具有特定值的分类属性的产品(例如,以/包含开头)

在PCM中有简单搜索和过滤器小部件(也称为Fulltextsearch小部件),它结合了SOLR搜索和高级搜索:它有一个属性列表,可以对其执行搜索,就像使用高级搜索一样搜索,但属性本身可以是SolrIndexedProperties(参见图1)。下图)。

图1。Simple Search and Filters widget with A added filter(来源:Simple Search and Filters widget官方文档)

一个可能的解决方案是将Fulltextsearch widget合并到管理驾驶舱的AdvancedSearch widget中,这样我们就可以两全其美。

1。重写OOTB AdvancedSearch小部件,使其包含Fulltextsearch小部件

为了重写OOTB Advanced小部件,我们需要创建一个自定义小部件,扩展OOTB小部件。为此,我们应该首先复制扩展中/backoffice/resources/widgets/advancedsearch文件夹的内容。此文件夹包含以下内容:

定义.xmlZUL文件–包含小部件UI元素的定义CSS和SCSS文件图像文件夹标签文件夹

首先,大数据的未来,我们将从扩展自定义小部件的UI开始。应将以下代码段添加到小部件的.zul文件中(该文件应位于/backoffice/resources/widgets/customwidget文件夹中):

fullTextSearchContainer将保存新子小部件的所有UI元素。fieldQueryButton是过滤器图标,中移物联网有限公司,单击该图标后,将打开fieldQueryPopup。fieldQueryPopup包含已经添加的过滤器以及用于触发搜索的Add more filters按钮和Apply按钮(参见图1)。在添加UI元素之后,我们现在需要添加一些额外的样式,以便子小部件位于正确的位置并具有适当的外观。可以将以下样式添加到新文件中(在/backoffice/resources/widgets/customwidget/scss/components文件夹中,例如\u advancedsearch-全文搜索.scss):

现在可以导入customwidget的样式(/backoffice/resources/widgets/customwidget/scss)/自定义小部件.scss通过添加以下行:

首先,淘客app定制,我们应该@Wire自定义小部件的控制器中的UI组件,为子小部件弹出窗口添加呈现器,并生成它们的getter和setter。这样我们就可以从控制器中访问在ZUL文件中定义的UI元素。控制器类应该扩展OOTBcom.hybris.backoffice公司.widgets.advancedsearch.advancedsearch控制器(这样我们就拥有了所有的OOTB实现逻辑,只需扩展新的子小部件所需的内容)并且应该是/customextension/backoffice/src源目录的一部分(与/customextension/src相反):

然后,我们需要初始化子小部件的组件。初始化在每次backoffice登录之后进行。为了做到这一点,我们将重写OOTB initialize(comp组件)方法——首先,我们将通过调用其super方法来确保高级搜索小部件本身具有OOTB初始化实现,然后我们将继续通过initializeFieldQueryComponents()和initializeFieldQueryFiltersCounterLabel()方法初始化新添加的UI组件:

initializeFieldQueryComponents()方法负责筛选按钮–它使其可见,并保留单击时发生的事情的逻辑。

adjustFieldQuery()方法从-配置.xml文件),并通过fieldQueryPopupRenderer呈现可用的过滤器。

getCurrentDataType()方法从小部件的值中获取当前正在搜索的类型。在本文后面介绍的performChangeType(String typeCode,boolean rootTypeChanged)方法中,它是在更改类型时设置的。

顾名思义,loadFullTextConfiguration()方法加载子小部件配置。此配置可以是任何-backoffice配置的一部分-配置.xml文件,基本上由一个过滤器列表组成,这些过滤器应该可以从弹出窗口的下拉列表中获得。-backoffice中组件的ID-配置.xml通过fulltextSearchConfigCtxCode设置配置文件,从小部件的定义.xml文件。

initializeFieldQueryFiltersCounterLabel()方法负责过滤器按钮右上角的气泡,该气泡保存当前启用的过滤器的数量。

在初始化小部件UI组件后,我们需要添加添加新过滤器和在搜索中包含它们:

onApplyFilters(Event-Event)方法保存了单击子窗口小部件弹出窗口的Apply按钮后发生的事情的实现逻辑-它使用设置的所有过滤器形成一个查询,更新filter按钮右上角的活动筛选器数并执行搜索。

为了能够在搜索时考虑筛选器,我们需要一个特定的非空事件,该事件应包含存储在Map对象中的筛选器数据。

buildSearchConditionData(Mapfilter)获取所有筛选器(从事件中传递),教育大数据,并为每个筛选器创建一个SearchConditionData对象,然后由实际搜索使用。

doSimpleSearch()方法中最重要的一行是applyFilters(queryData):