搜尋要點 search-essentials
概觀 overview
搜尋功能是AEM Communities的一項基本功能。 除了 AEM platform search 功能,AEM Communities提供 UGC搜尋API 以搜尋使用者產生的內容(UGC)。 UGC具有唯一屬性,因為它是單獨輸入和儲存的,與其他AEM內容和用戶資料分開。
對於Communities,一般會搜尋以下兩項:
-
社群成員張貼的內容
- 使用AEM Communities的UGC搜尋API
-
使用者和使用者群組(使用者資料)
- 使用AEM平台搜尋功能
開發人員在建立建立或管理UGC的自訂元件時,會關注檔案的本節。
安全性和卷影節點 security-and-shadow-nodes
對於自訂元件,必須使用 SocialResourceUtilities 方法。 建立和搜尋UGC的公用程式方法將建立所需 陰影節點 並確保成員對請求具有正確的權限。
未透過SRP公用程式管理的是與協調相關的屬性。
請參閱 SRP和UGC要點 有關用於訪問UGC和ACL卷影節點的實用程式方法的資訊。
UGC搜尋API ugc-search-api
此 UGC常用商店 由多種儲存資源提供者(SRP)之一提供,每個提供者可能具有不同的原生查詢語言。 因此,無論選擇何種SRP,自訂程式碼都應使用 UGC API套件 (com.adobe.cq.social.ugc.api),會叫用適合所選SRP的查詢語言。
ASRP搜索 asrp-searches
針對 ASRP,UGC會儲存在Adobe雲中。 雖然UGC在CRX中不可見, 審核 可在製作和發佈環境中使用。 使用 UGC搜尋API ASRP與其他SRP的作用相同。
當前不存在用於管理ASRP搜索的工具。
建立可供搜尋的自訂屬性時,必須遵循 命名需求.
MSRP搜尋 msrp-searches
針對 MSRP,UGC會儲存在MongoDB中,設定為使用Solr進行搜尋。 UGC不會顯示在CRX中,但 審核 可在製作和發佈環境中使用。
關於MSRP和Solr:
- MSRP不會使用AEM平台的內嵌解決方案
- 如果為AEM平台使用遠端解決方案,則可與MSRP共用,但應使用不同集合
- Solr可配置為標準搜索或多語言搜索(MLS)
- 如需設定詳細資訊,請參閱 Solr配置 MSRP
自訂搜尋功能應使用 UGC搜尋API.
建立可供搜尋的自訂屬性時,必須遵循 命名需求.
JSRP搜尋 jsrp-searches
針對 JSRP,UGC會儲存在 Oak 和只會顯示在其輸入之AEM作者或發佈例項的存放庫中。
由於UGC通常是在發佈環境中輸入,因此對於多發佈者生產系統,必須設定 發佈叢集,而非發佈伺服器陣列,以便從所有發佈者看到輸入的內容。
針對JSRP,在發佈環境中輸入的UGC將永遠無法顯示在製作環境中。 所以 審核 工作會在發佈環境中進行。
自訂搜尋功能應使用 UGC搜尋API.
Oak Indexing oak-indexing
雖然AEM平台搜尋不會自動建立Oak索引,但自AEM 6.2起,已針對AEM Communities新增這些索引,以改善效能,並在顯示UGC搜尋結果時提供分頁支援。
如果自訂屬性正在使用中,且搜尋速度緩慢,則需要為自訂屬性建立其他索引,以提高效能。 要保持便攜性,請遵守 命名需求 建立可供搜尋的自訂屬性時。
要修改現有索引或建立自定義索引,請參閱 Oak查詢和索引.
此 Oak Index Manager 可從ACS AEM公域取得。 它提供:
- 對現有指數的看法
- 啟動重新索引的能力
若要在 CRXDE Lite,位置為:
/oak:index/socialLucene
索引搜索屬性 indexed-search-properties
預設搜索屬性 default-search-properties
以下是用於各種Communities功能的一些可搜索屬性:
自訂屬性的命名 naming-of-custom-properties
新增自訂屬性時,為了讓這些屬性可供排序和使用 UGC搜尋API,此為 必要,可新增尾碼至屬性名稱。
尾碼適用於使用結構的查詢語言:
- 它會將屬性識別為可搜尋
- 它會識別資料類型
Solr是使用結構的查詢語言的範例。
附註:
-
文字 是被標籤的字串, 字串 不是。 使用 文字 模糊(更像這樣)搜索。
-
對於多值類型,請將's'新增至尾碼,例如:
viewDate_dt
:單一日期屬性viewDates_dts
:日期屬性清單
篩選條件 filters
包括 註解系統 支援在其端點上新增篩選參數。
AND和OR邏輯的篩選語法如下表示(如在進行URL編碼前所示):
-
要指定OR,請使用一個帶逗號分隔值的篩選器參數:
filter=name eq 'Jennifer',name eq 'Jen'
-
若要指定AND,請使用多個篩選參數:
filter = name eq 'Jackson'&filter=message eq 'testing'
預設實作 搜尋元件 會使用此語法,如在 社群元件指南. 若要實驗,請瀏覽至 http://localhost:4503/content/community-components/en/search.html.
篩選運算子包括:
URL必須參考Communities元件(資源),而非元件放置所在的頁面:
- 正確:論壇元件
/content/community-components/en/forum/jcr:content/content/forum.social.json
- 錯誤:論壇頁面
/content/community-components/en/forum.social.json
SRP工具 srp-tools
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
疑難排解 troubleshooting
Solr查詢 solr-query
若要協助疑難排解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工具,以進行進一步除錯。
相關資源 related-resources
- 社群內容儲存 — 討論UGC通用商店的可用SRP選擇
- 儲存資源提供程式概述 — 簡介和存放庫使用概觀
- 使用SRP存取UGC — 編碼准則
- SocialUtils重構 — 取代SocialUtils的SRP公用程式方法
- 搜尋和搜尋結果元件 — 將UGC搜索功能添加到模板