搜尋功能是AEM Communities的必備功能。 除了AEM平台搜尋功能外,AEM Communities還提供UGC搜尋API,以搜尋使用者產生的內容(UGC)。 UGC在輸入時具有唯一屬性,並與其他AEM內容和使用者資料分開儲存。
對於「社群」,通常搜尋的兩項功能為:
社群成員張貼的內容
使用者和使用者群組(使用者資料)
說明檔案的本節內容對於建立建立或管理UGC的自訂元件的開發人員而言十分有用。
對於自訂元件,必須使用SocialResourceUtilities方法。 建立和搜索UGC的實用程式方法將建立所需的卷影節點,並確保成員具有正確的請求權限。
未通過SRP實用程式管理的是與協調相關的屬性。
有關用於訪問UGC和ACL卷影節點的實用方法的資訊,請參見SRP和UGC Essentials。
UGC公共儲存由多種儲存資源提供器(SRP)之一提供,每個儲存資源提供器可能具有不同的本地查詢語言。 因此,無論選擇何種SRP,自訂代碼都應使用UGC API套件(com.adobe.cq.social.ugc.api)中的方法,這些方法將調用適合於所選SRP的查詢語言。
對於ASRP,UGC會儲存在Adobe雲端。 雖然UGC在CRX中不可見,但moderation可從作者和發佈環境使用。 使用UGC搜索API對ASRP的作用與對其他SRP的作用相同。
目前不存在用於管理ASRP搜索的工具。
建立可搜尋的自訂屬性時,必須符合命名要求。
對於MSRP,UGC儲存在配置為使用Solr進行搜索的MongoDB中。 UGC在CRX中不會顯示,但moderation可從作者和發佈環境使用。
關於MSRP和Solr:
自訂搜尋功能應使用UGC搜尋API。
建立可搜尋的自訂屬性時,必須符合命名要求。
對於JSRP,UGC會儲存在Oak中,且僅會顯示在輸入AEM作者的儲存庫或發佈例項中。
由於UGC通常是在發佈環境中輸入的,對於多發佈者生產系統,因此必須配置發佈叢集,而非發佈叢集,以便所有發佈者都能看到輸入的內容。
對於JSRP,在發佈環境中輸入的UGC在作者環境中將不可見。 因此,所有協調工作都會在發佈環境中進行。
自訂搜尋功能應使用UGC搜尋API。
雖然Oak索引不會自動為AEM平台搜尋建立,但是從AEM 6.2開始,已為AEM Communities新增這些索引,以改善效能並在呈現UGC搜尋結果時提供分頁支援。
如果自訂屬性正在使用中且搜尋速度緩慢,則需要為自訂屬性建立其他索引,以提高其效能。 若要維持可移植性,在建立可搜尋的自訂屬性時,請遵循命名需求。
要修改現有索引或建立自定義索引,請參閱Oak Queries and Indexing。
Oak Index Manager可從ACS AEM Commons取得。 它提供:
若要在CRXDE Lite中檢視現有的Oak索引,位置為:
/oak:index/socialLucene
以下是用於各種「社群」功能的一些可搜尋屬性:
屬性 | 資料類型 |
---|---|
isPratged | 布林值 (Boolean) |
isSpam | 布林值 (Boolean) |
讀取 | 布林值 (Boolean) |
影響 | 布林值 (Boolean) |
附件 | 布林值 (Boolean) |
情緒 | 長整數 |
已標籤 | 布林值 (Boolean) |
已新增 | 日期 |
modifiedDate | 日期 |
狀態 | String |
userIdentifier | 字串 |
回覆 | 長整數 |
jcr:title | 字串 |
jcr:description | 字串 |
sling:resourceType | 字串 |
allowThreadedReply | 布林值 (Boolean) |
isDraft | 布林值 (Boolean) |
publishDate | 日期 |
publishJobId | 字串 |
已回答 | 布林值 (Boolean) |
喬森納 | 布林值 (Boolean) |
標籤 | 字串 |
cq:Tag | 字串 |
author_display_name | 字串 |
location_t | 字串 |
parentPath | 字串 |
parentTitle | 字串 |
添加自定義屬性時,為了使這些屬性對使用UGC搜索API建立的排序和搜索可見,需要**為屬性名稱添加尾碼。
尾碼用於使用架構的查詢語言:
Solr是使用架構的查詢語言的示例。
字尾 | 資料類型 |
---|---|
_b | 布林值 (Boolean) |
_dt | 日曆 |
_d | 雙精準數 |
_tl | 長整數 |
_s | 字串 |
_t | 文字 |
附註:
Textis a token化字串, ** Stringis not.使用Text進行模糊搜尋(更類似此)。
對於多值類型,請在尾碼中添加「s」,例如:
viewDate_dt
:單一日期屬性viewDates_dts
:dates屬性清單包含注釋系統的元件支援將過濾器參數添加到其端點。
AND和OR邏輯的篩選語法如下所示(在進行URL編碼前顯示):
若要指定OR,請使用一個具有逗號分隔值的篩選參數:
filter=name eq 'Jennifer',name eq 'Jen'
要指定AND,請使用多個篩選參數:
filter = name eq 'Jackson'&filter=message eq 'testing'
Search元件的預設實作會使用此語法,如Community Components指南中開啟「搜尋結果」頁面的URL所示。 若要實驗,請瀏覽至http://localhost:4503/content/community-components/en/search.html。
篩選運算子有:
EQ | 等於 |
---|---|
NE | 不等於 |
LT | 小於 |
LTE | 小於或等於 |
GE | 大於 |
GTE | 大於或等於 |
贊 | 模糊匹配 |
URL必須參照Communities元件(資源),而非放置元件的頁面:
/content/community-components/en/forum/jcr:content/content/forum.social.json
/content/community-components/en/forum.social.json
Adobe Marketing Cloud GitHub專案包含:
此儲存庫包含用於管理SRP中資料的工具。
目前,有一個Servlet可以從任何SRP中刪除所有UGC。
例如,若要刪除ASRP中的所有UGC:
curl -X POST http://localhost:4502/services/social/srp/cleanup?path=/content/usergenerated/asi/cloud -uadmin:admin
若要協助疑難排解Solr查詢的問題,請啟用
com.adobe.cq.social.srp.impl.SocialSolrConnector
。
實際的Solr查詢會顯示在偵錯記錄中編碼的URL:
對索爾的查詢是:sort=timestamp+desc&bl=en&pl=en&start=0&rows=10 &q=%2Btitle_t:(hello)+%2Bprovider_id:\/content/usergenerated/asi/mongo/content/+%2Bresource_type_s:&df=provider_id&trf=verbatim&fq={!cost%3D100}report_suite:mongo
q
參數的值是查詢。 一旦解碼URL編碼,查詢就可以傳遞至Solr Admin Query工具,以進一步除錯。