搜尋功能是AEM Communities的一項基本功能。 除了AEM平台搜尋功能外,AEM Communities還提供UGC搜尋API以搜尋使用者產生的內容(UGC)。 UGC具有唯一屬性,因為它是單獨輸入和儲存的,與其他AEM內容和用戶資料分開。
對於Communities,一般會搜尋以下兩項:
社群成員張貼的內容
使用者和使用者群組(使用者資料)
開發人員在建立建立或管理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中,且只會顯示在輸入UGC的AEM作者或發佈例項的存放庫中。
由於UGC通常是在發佈環境中輸入,對於多發佈者生產系統,因此必須配置發佈叢集而非發佈叢集,以便從所有發佈者看到輸入的內容。
針對JSRP,在發佈環境中輸入的UGC將永遠無法顯示在製作環境中。 因此,所有moderation工作都會在發佈環境中進行。
自訂搜尋功能應使用UGC搜尋API。
雖然AEM平台搜尋不會自動建立Oak索引,但自AEM 6.2起,已針對AEM Communities新增這些索引,以改善效能,並在顯示UGC搜尋結果時提供分頁支援。
如果自訂屬性正在使用中,且搜尋速度緩慢,則需要為自訂屬性建立其他索引,以提高效能。 若要維持可移植性,在建立可搜尋的自訂屬性時,請遵循命名需求。
若要修改現有索引或建立自訂索引,請參閱Oak Querys and Indexing。
Oak Index Manager可從ACS AEM公域取得。 它提供:
若要在CRXDE Lite中檢視現有的Oak索引,位置為:
/oak:index/socialLucene
以下是用於各種Communities功能的一些可搜索屬性:
屬性 | 資料類型 |
---|---|
已標幟 | 布林值 (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 | 文字 |
附註:
文字是標籤字串, 字串不是。使用文字來執行模糊(更類似於此)搜尋。
對於多值類型,請將'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 | 大於 |
GET | 大於或等於 |
LIKE | 模糊匹配 |
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工具,以進行進一步除錯。