搜尋功能是Adobe Experience Manager (AEM) Communities的重要功能。 除了 AEM平台搜尋 功能,AEM Communities提供 UGC搜尋API 用於搜尋使用者產生的內容(UGC)。 UGC在輸入和儲存時,與其他AEM內容和使用者資料分開,因此有獨特的屬性。
針對Communities,通常會搜尋以下兩個專案:
社群成員張貼的內容
使用者和使用者群組(使用者資料)
建立自訂元件以建立或管理UGC的開發人員,可能會對說明檔案的此區段感興趣。
對於自訂元件,有必要使用 SocialResourceUtilities 方法。 建立和搜尋UGC的公用程式方法會建立必要的 陰影節點 並確保成員擁有請求的正確許可權。
不透過SRP公用程式管理的內容為與仲裁相關的屬性。
另請參閱 srp和UGC Essentials 有關用來存取UGC和ACL陰影節點的公用程式方法的資訊。
此 UGC公用存放區 由各種儲存資源提供者(SRP)之一提供,每個提供者可能都有不同的原生查詢語言。 因此,無論選擇的SRP為何,自訂程式碼都應使用來自 UGC API套件 (com.adobe.cq.social.ugc.api)會叫用適合所選SRP的查詢語言。
的 ASRP,UGC儲存在Adobe雲端。 雖然UGC在CRX中不可見, 稽核 可在製作和發佈環境中使用。 使用 UGC搜尋API ASRP的運作方式與其他SRP相同。
目前沒有管理ASRP搜尋的工具。
建立可搜尋的自訂屬性時,必須遵守 命名需求.
的 MSRP,UGC儲存在MongoDB中,已設定為使用Solr進行搜尋。 CRX中未顯示UGC,但 稽核 可在製作和發佈環境中使用。
關於MSRP和Solr:
自訂搜尋功能應使用 UGC搜尋API.
建立可搜尋的自訂屬性時,必須遵守 命名需求.
的 JSRP,UGC儲存在 Oak 而且只會顯示在輸入它的AEM作者或發佈執行個體的存放庫中。
由於UGC通常輸入在發佈環境中,因此對於多發佈者生產系統,必須設定 發佈叢集,而非發佈陣列,因此所有發佈者都能看見輸入的內容。
對於JSRP,在發佈環境中輸入的UGC在製作環境中從不可見。 因此,所有 稽核 工作會在發佈環境中進行。
自訂搜尋功能應使用 UGC搜尋API.
雖然自AEM 6.2起,AEM平台搜尋不會自動建立Oak索引,但已為AEM Communities新增這些索引,以改進效能並在顯示UGC搜尋結果時支援分頁。
如果使用自訂屬性且搜尋速度緩慢,則必須為自訂屬性建立其他索引,以提高其效能。 若要保持可攜性,請遵守 命名需求 建立可搜尋的自訂屬性時。
若要修改現有索引或建立自訂索引,請參閱 Oak查詢和索引.
此 Oak索引管理員 可從ACS AEM Commons取得。 它提供:
若要檢視中的現有Oak索引 CRXDE Lite,位置為:
/oak:index/socialLucene
以下是供各種Communities功能使用的一些可搜尋屬性:
屬性 | 資料類型 |
---|---|
isFlagged | 布林值 |
isSpam | 布林值 |
讀取 | 布林值 |
影響 | 布林值 |
附件 | 布林值 |
情緒 | 長整數 |
已標幟 | 布林值 |
已新增 | 日期 |
modifieddate | 日期 |
狀態 | 字串 |
userId | 字串 |
回覆 | 長整數 |
jcr:title | 字串 |
jcr:description | 字串 |
sling:resourceType | 字串 |
allowThreadedReply | 布林值 |
isDraft | 布林值 |
publishDate | 日期 |
publishJobId | 字串 |
已回答 | 布林值 |
chosenanswered | 布林值 |
標籤 | 字串 |
cq:Tag | 字串 |
author_display_name | 字串 |
location_t | 字串 |
parentpath | 字串 |
parentTitle | 字串 |
新增自訂屬性時,這些屬性會顯示於使用 UGC搜尋API,它是 必填 以新增尾碼至屬性名稱。
尾碼適用於使用結構的查詢語言:
Solr是使用結構描述的查詢語言範例。
字尾 | 資料類型 |
---|---|
_b | 布林值 |
_dt | 日曆 |
_d | 雙精度 |
_tl | 長整數 |
_s | 字串 |
_t | 文字 |
附註:
文字 是標籤字串, 字串 不是。 使用 文字 用於模糊(類似於)搜尋。
對於多值型別,請在尾碼中新增's',例如:
viewDate_dt
:單一日期屬性viewDates_dts
:日期屬性清單元件,包括 註解系統中,除了其端點外,也支援篩選引數。
AND和OR邏輯的篩選器語法如下(在URL編碼之前顯示):
若要指定OR或使用帶有逗號分隔值的篩選器引數:
filter=name eq 'Jennifer',name eq 'Jen'
若要指定AND並使用多個篩選引數,請執行下列動作:
filter = name eq 'Jackson'&filter=message eq 'testing'
的預設實作 搜尋元件 會使用此語法,如同在開啟搜尋結果頁面的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 Experience 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查詢的問題,請為啟用DEBUG記錄
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管理查詢工具,以便進一步偵錯。