搜索要点 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:
- AEM平台的嵌入式解决程序不用于MSRP
- 如果为AEM平台使用远程解决程序,则可以与MSRP共享该解决方案,但它们应使用不同的集合
- Solr可配置为标准搜索或多语言搜索(MLS)
- 有关配置详细信息,请参阅 Solr配置 (针对MSRP)
自定义搜索功能应使用 UGC搜索API.
创建可搜索的自定义属性时,必须遵循 命名要求.
JSRP搜索 jsrp-searches
对于 JSRP,则UGC存储在 Oak 和仅在输入了它的AEM创作或发布实例的存储库中可见。
由于UGC通常在发布环境中输入,因此对于多发布者生产系统,需要配置 发布群集,而不是发布场,以便所有发布者都可以看到输入的内容。
对于JSRP,在发布环境中输入的UGC在创作环境中将不可见。 所以 审核 任务在发布环境中执行。
自定义搜索功能应使用 UGC搜索API.
Oak索引 oak-indexing
虽然不会为AEM平台搜索自动创建Oak索引,但从AEM 6.2开始,已为AEM Communities添加了索引,以提高性能,并在显示UGC搜索结果时支持分页。
如果自定义属性正在使用且搜索速度缓慢,则需要为自定义属性创建其他索引,以提高其性能。 要保持便携性,请 命名要求 创建可搜索的自定义属性时。
要修改现有索引或创建自定义索引,请参阅 Oak查询和索引.
的 Oak索引管理器 可从ACS AEM Commons获取。 它提供:
- 现有索引的视图
- 启动重新索引的功能
查看 CRXDE Lite,位置为:
/oak:index/socialLucene
索引搜索属性 indexed-search-properties
默认搜索属性 default-search-properties
以下是用于各种社区功能的一些可搜索属性:
自定义属性的命名 naming-of-custom-properties
添加自定义属性时,为了对通过 UGC搜索API,则 需要 才能在属性名称中添加后缀。
后缀适用于使用架构的查询语言:
- 它会将资产标识为可搜索
- 它标识数据类型
Solr是使用模式的查询语言的一个示例。
注释:
-
文本 是一个以符号表示的字符串, 字符串 不是。 使用 文本 模糊(更像这样)搜索。
-
对于多值类型,请在后缀中添加“s”,例如:
viewDate_dt
:单日期属性viewDates_dts
:日期属性列表
过滤器 filters
包含 评论系统 支持在其端点中添加filter参数。
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应务必引用社区组件(资源),而不是放置组件的页面:
- 正确:论坛组件
/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-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搜索功能