我需要使用Databean獲取CATENTDESCOVR的數據。Databean獲取CATENTDESCOVR
是否有IBM提供的任何數據庫來獲取數據?
我使用IBM的WebSphere Commerce V7.0功能包8
我需要使用Databean獲取CATENTDESCOVR的數據。Databean獲取CATENTDESCOVR
是否有IBM提供的任何數據庫來獲取數據?
我使用IBM的WebSphere Commerce V7.0功能包8
這是個好問題,下面是CATENTDESCOVR的工作原理,這個答案基於WCS 7.0,FEP 7。但我相信fep 8具有相同的API,我不認爲IBM在fep8中增強了這一點!
,如果你看一下如何將這些數據進行索引和存儲在Solr的schema.xml中,你會發現下面的行
<!--
Catentry's description override: map to table CATENTDESCOVR
-->
<field name="nameOverride" type="wc_text" indexed="true" stored="true" multiValued="true"/>
<field name="shortDescriptionOverride" type="wc_text" indexed="true" stored="true" multiValued="true"/>
<field name="keywordOverride" type="wc_text" indexed="true" stored="true" multiValued="true"/>
請注意這裏的multiValued="true"
,這意味着如果你有multible店屬於對於相同的Esite,solr索引名稱爲ovr,descOvr爲catentryId的多值,但solr不知道哪個重寫名稱屬於哪個存儲區,該bean稱,IBM solr索引主存儲庫數據不存儲特定數據。
這帶來了問題如何在商店門前顯示每個商店的重寫名稱?
答案是利用WC-搜索後處理:
com.ibm.commerce.foundation.server.services.rest.search.postprocessor.solr.SolrRESTSearchCatalogEntryViewDescriptionQueryPostprocessor
,如果你看一下這個後處理器,你會發現下面的高級步驟執行:
1獲得catOvrGrpId由:
catOvrGrpId = CatalogOverrideHelper.getOverrideGroupIdForStore(this.iStoreId)
2 - 通過調用DSL服務中獲得所需的覆蓋數據:
JDBCQueryService service = new JDBCQueryService("com.ibm.commerce.catalog");
queryParameters.put("language", langIds);
queryParameters.put("UniqueID", catEntryUniqueIDs);
queryParameters.put("catOverrideGroupID", groupIds);
service.executeQuery("IBM_Get_CatentryDescOverride_By_LangId_And_CatentryId_And_GroupId",
queryParameters);
3-轉換數組列表返回到JSON兼容結果:
populateOverrideCatalogEntries((List)listOfPhysicalObjects, catalogEntryViews);
可以重複使用上面的代碼,並試圖去編譯SolrRESTSearchCatalogEntryViewDescriptionQueryPostprocessor
瞭解如何可以讀取數據庫中的這些信息。
爲IBM_Get_CatentryDescOverride_By_LangId_And_CatentryId_And_GroupId
查詢正在Search/xml/config/com.ibm.commerce.catalog/wc-query-utilities.tpl
希望存在,這將是信息給你。
謝謝 Abed
CATENTDESCOVR已經在您的solr內核中編入索引。
查看solr \ home \ MC_10001 \ en_US \ CatalogEntry \ conf,在wc-data-config.xml中,您可以看到它被映射到內核中。
當您從solr請求數據時,搜索EAR項目的wc-search.xml中定義的其中一個Post處理過濾器會將覆蓋值填充爲返回值的「名稱」或「shortdesc」。
所以,你真的只需要調用其他服務就可以正常獲得這個值。提供的課程你想要從前端。
如果您需要它後端,您可以使用CatalogEntryFacadeClient執行solr查詢。