Show Menu
主题×

Search Essentials

概述

搜索功能是AEM Communities的一个基本特征。 除了AEM平台 搜索功能 ,AEM Communities还提 供UGC搜索API ,用于搜索用户生成的内容(UGC)。 UGC具有唯一属性,因为输入该属性时,它会与其他AEM内容和用户数据分开存储。
对于Communities,通常搜索的两件事情是:
  • 社区成员发布的内容
    • 使用AEM Communities的UGC搜索API。
  • 用户和用户组(用户数据)
    • 使用AEM平台搜索功能。
文档的本节内容对创建创建或管理UGC的自定义组件的开发人员很有兴趣。

安全和阴影节点

对于自定义组件,必须使用SocialResourceUtilities 方法 。 创建和搜索UGC的实用程序方法将建立所需的 阴影节点 ,并确保成员对请求具有正确的权限。
未通过SRP实用程序管理的是与仲裁相关的属性。
有关 用于访问UGC和ACL 阴影节点的实用程序方法的信息,请参阅SRP和UGC Essentials。

UGC搜索API

UGC 公共存储 由各种存储资源提供者(SRP)之一提供,每个提供者可能具有不同的本机查询语言。 因此,无论选择何种SRP,自定义代码都应使用 UGC API包 ( com.adobe.cq.social.ugc.api )中的方法,该方法将调用适合所选SRP的查询语言。

ASRP搜索

于ASRP ,UGC存储在Adobe云中。 虽然UGC在CRX中不可见, 仲裁在作者和发布环境中均可用。 UGC搜索API的 使用对于ASRP ,与其他SRP的使用相同。
目前不存在用于管理ASRP搜索的工具。
创建可搜索的自定义属性时,必须符合命名 要求

MSRP搜索

于MSRP ,UGC存储在MongoDB中,配置为使用Solr进行搜索。 UGC在CRX中不可见,但 审核 可从作者和发布环境访问。
关于MSRP和Solr:
  • AEM平台的嵌入式Solr不用于MSRP。
  • 如果将远程Solr用于AEM平台,则可以与MSRP共享它,但它们应使用不同的集合。
  • Solr可配置为标准搜索或多语言搜索(MLS)。
  • 有关配置详细信息,请 参阅MSRP的 Solr配置。
自定义搜索功能应 使用UGC搜索API
创建可搜索的自定义属性时,必须符合命名 要求

JSRP搜索

于JSRP ,UGC存储在Oak AEM Platform简介 ,并且仅在输入它的AEM作者或发布实例的存储库中可见。
由于UGC通常在发布环境中输入,对于多发布者生产系统,必须配置发 布群集 ,而不是发布场,这样输入的内容在所有发布者中都可见。
对于JSRP,在发布环境中输入的UGC在创作环境中将不可见。 因此,所 有协调 任务都发生在发布环境中。
自定义搜索功能应 使用UGC搜索API

Oak索引

虽然Oak索引不是为AEM平台搜索自动创建的,但从AEM 6.2开始,它们已经为AEM Communities添加,以提高性能,并在呈现UGC搜索结果时提供分页支持。
如果自定义属性正在使用,且搜索速度慢,则需要为自定义属性创建其他索引,以提高其性能。 要保持可移植性,在创建可搜 索的自定 义属性时,请遵循命名要求。
要修改现有索引或创建自定义索引,请参 阅Oak查询和索引
Oak Index Manager可从 ACS AEM Commons获得。 它提供:
  • 现有索引的视图。
  • 启动重新索引的能力。
要在视图中CRXDE Lite现有 Oak索引 ,位置为:
  • /oak:index/socialLucene

索引搜索属性

默认搜索属性

以下是用于各种社区功能的一些可搜索属性:
属性
数据类型
isFlaged
布尔型
isSpam
布尔型
布尔型
影响
布尔型
附件
布尔型
情感
长整型
已标记
布尔型
已添加
日期
modifiedDate
日期
状态
String
userIdentifier
String
回复
长整型
jcr:title
String
jcr:description
String
sling:resourceType
String
allowThreadedReply
布尔型
isDraft
布尔型
publishDate
日期
publishJobId
String
已回复
布尔型
乔森纳
布尔型
标签
String
cq:标记
String
author_display_name
String
location_t
String
parentPath
String
parentTitle
String

自定义属性的命名

添加自定义属性时,为了使这些属性对使用UGC搜索API创建的排序和搜索 可见 , 需要 为属性名称添加后缀。
后缀是使用查询语的模式语:
  • 它将属性标识为可搜索。
  • 它标识数据类型。
Solr是使用查询语的模式语的示例。
后缀
数据类型
_b
布尔型
_dt
日历
_d
双精度型
_tl
长整型
_s
String
_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
大于或等于
LIKE
模糊匹配
URL引用社区组件(资源),而不是放置组件的页面,这一点很重要:
  • 正确:论坛组件
    • /content/community-components/en/forum/jcr:content/content/forum.social.json
  • 不正确:论坛页面
    • /content/community-components/en/forum.social.json

SRP工具

有一个Adobe Marketing CloudGitHub项目,其中包含:
此存储库包含用于管理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:
查询至solr是: 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查询工具以进一步调试。