Die Suchfunktion ist ein wesentliches Merkmal von AEM Communities. Zusätzlich zu den Funktionen AEM Plattformsuche stellt AEM Communities die UGC-Such-API zum Durchsuchen benutzergenerierter Inhalte (UGC) bereit. UGC verfügt über eindeutige Eigenschaften, da es unabhängig von anderen AEM- und Benutzerdaten eingegeben und gespeichert wird.
Für Communities werden im Allgemeinen zwei Dinge gesucht:
Veröffentlichte Inhalte von Community-Mitgliedern
Benutzer und Benutzergruppen (Benutzerdaten)
Dieser Abschnitt der Dokumentation ist für Entwickler von Interesse, die benutzerdefinierte Komponenten erstellen, die UGC erstellen oder verwalten.
Für eine benutzerdefinierte Komponente müssen Sie die Methoden SocialResourceUtilities verwenden. Die Dienstprogrammmethoden, die UGC erstellen und suchen, stellen die erforderlichen shadow-Knoten her und stellen sicher, dass das Mitglied über die richtigen Berechtigungen für die Anforderung verfügt.
Was nicht über die SRP-Dienstprogramme verwaltet wird, sind Eigenschaften im Zusammenhang mit der Moderation.
Weitere Informationen zu Dienstprogrammmethoden für den Zugriff auf UGC- und ACL-Schattenknoten finden Sie unter SRP und UGC Essentials.
Der gemeinsame Speicher UGC wird von einem von verschiedenen Datenspeicherung Resource Providern (SRPs) bereitgestellt, von denen jeder möglicherweise eine andere Sprache für die native Abfrage hat. Deshalb sollte benutzerdefinierter Code unabhängig von der gewählten SRP Methoden aus dem UGC API-Paket (com.adobe.cq.social.ugc.api) verwenden, das die für die jeweilige SRP geeignete Abfrage aufruft.
Für ASRP wird UGC in der Adobe-Cloud gespeichert. Während UGC in CRX nicht sichtbar ist, ist Moderation sowohl in der Autor- als auch in der Veröffentlichungs-Umgebung verfügbar. Die Verwendung der UGC-Such-API funktioniert für ASRP genauso wie für andere SRPs.
Es gibt derzeit keine Tools zur Verwaltung von ASRP-Suchen.
Beim Erstellen benutzerdefinierter Eigenschaften, die durchsuchbar sind, müssen Sie die Benennungsanforderungen einhalten.
Für MSRP wird UGC in MongoDB gespeichert, das für die Suche mit Solr konfiguriert ist. UGC ist in CRX nicht sichtbar, aber Moderation ist sowohl in der Autor- als auch in der Veröffentlichungs-Umgebung verfügbar.
Zu MSRP und Solr:
Benutzerdefinierte Suchfunktionen sollten die UGC-Suchschnittstelle verwenden.
Beim Erstellen benutzerdefinierter Eigenschaften, die durchsuchbar sind, müssen Sie die Benennungsanforderungen einhalten.
Für JSRP wird UGC in Oak gespeichert und ist nur im Repository der AEM- oder Veröffentlichungsinstanz sichtbar, in der sie eingegeben wurde.
Da UGC in der Regel in der Veröffentlichungs-Umgebung eingegeben wird, muss für Produktionssysteme mit mehreren Herausgebern ein Veröffentlichungs-Cluster und nicht eine Veröffentlichungsfarm konfiguriert werden, damit der eingegebene Inhalt von allen Herausgebern sichtbar ist.
Bei JSRP ist in der Umgebung "Veröffentlichen"eingegebenes UGC in der Autorenversion nie sichtbar. Daher finden alle Moderation-Aufgaben in der Veröffentlichungs-Umgebung statt.
Benutzerdefinierte Suchfunktionen sollten die UGC-Suchschnittstelle verwenden.
Obwohl Oak-Indizes nicht automatisch für die AEM Plattformsuche erstellt werden, wurden sie ab AEM 6.2 für AEM Communities hinzugefügt, um die Leistung zu verbessern und Paginierung bei der Präsentation von UGC-Suchergebnissen zu unterstützen.
Wenn benutzerdefinierte Eigenschaften verwendet werden und die Suchvorgänge langsam sind, müssen zusätzliche Indizes für die benutzerdefinierten Eigenschaften erstellt werden, um sie leistungsfähiger zu machen. Um die Portabilität zu erhalten, sollten Sie beim Erstellen von benutzerdefinierten Eigenschaften, die durchsuchbar sind, die Benennungsanforderungen beachten.
Informationen zum Ändern vorhandener Indizes oder zum Erstellen benutzerdefinierter Indizes finden Sie unter Oak-Abfragen und Indizierung.
Der Oak Index Manager ist in ACS AEM Commons verfügbar. Er umfasst:
Zur Ansicht der vorhandenen Oak-Indizes in CRXDE Lite lautet der Speicherort:
/oak:index/socialLucene
Im Folgenden sind einige der durchsuchbaren Eigenschaften aufgeführt, die für verschiedene Communities-Funktionen verwendet werden:
Eigenschaft | Datentyp |
---|---|
isGekennzeichnet | Boolesch |
isSpam | Boolesch |
lesen | Boolesch |
Einfluss | Boolesch |
attachments | Boolesch |
sentiment | Lang |
markiert | Boolesch |
hinzugefügt | Datum |
modifyDate | Datum |
state | Zeichenfolge |
userIdentifier | Zeichenfolge |
Antworten | Lang |
jcr:title | Zeichenfolge |
jcr:description | Zeichenfolge |
sling:resourceType | Zeichenfolge |
allowThreadedReply | Boolesch |
isDraft | Boolesch |
publishDate | Datum |
publishJobId | Zeichenfolge |
beantwortet | Boolesch |
chosenantwortet | Boolesch |
tag | Zeichenfolge |
cq:Tag | Zeichenfolge |
author_display_name | Zeichenfolge |
location_t | Zeichenfolge |
parentPath | Zeichenfolge |
parentTitle | Zeichenfolge |
Wenn Sie benutzerdefinierte Eigenschaften hinzufügen, damit diese Eigenschaften für mit der UGC-Such-API erstellte Sorten und Suchen sichtbar sind, ist *erforderlich *um dem Eigenschaftsnamen ein Suffix hinzuzufügen.
Das Suffix ist für Abfragen gedacht, die ein Schema verwenden:
Solr ist ein Beispiel für eine Abfrage, die ein Schema verwendet.
Suffix | Datentyp |
---|---|
_b | Boolesch |
_dt | Kalender |
_d | Double |
_tl | Lang |
_S | Zeichenfolge |
_t | Text |
Hinweise:
**Textis eine tokenisierte Zeichenfolge, ** Stringis nicht. Verwenden Sie Text für unscharfe (mehr wie diese) Suchen.
Bei Typen mit mehreren Werten fügen Sie dem Suffix "s"hinzu, z. B.:
viewDate_dt
: single date propertyviewDates_dts
: liste der Eigenschaft "date"Komponenten, die das Kommentarsystem enthalten, unterstützen den Filterparameter zusätzlich zu ihren Endpunkten.
Die Filtersyntax für AND- und OR-Logik wird wie folgt ausgedrückt (wird vor der URL-Kodierung angezeigt):
Um OR anzugeben, verwenden Sie einen Filterparameter mit kommagetrennten Werten:
filter=name eq 'Jennifer',name eq 'Jen'
So legen Sie und verwenden Sie mehrere Filterparameter fest:
filter = name eq 'Jackson'&filter=message eq 'testing'
Die Standardimplementierung der Suchkomponente verwendet diese Syntax wie in der URL, die die Seite "Suchergebnisse"im Community-Komponenten-Handbuch öffnet. Um zu experimentieren, navigieren Sie zu http://localhost:4503/content/community-components/en/search.html.
Filteroperatoren sind:
EQ | Gleich |
---|---|
NE | nicht gleich |
LT | Kleiner als |
LTE | kleiner oder gleich |
GE | Größer als |
GTE | größer oder gleich |
LIKE | Fuzzy Match |
Es ist wichtig, dass die URL auf die Communities-Komponente (Ressource) und nicht auf die Seite verweist, auf der die Komponente platziert wird:
/content/community-components/en/forum/jcr:content/content/forum.social.json
/content/community-components/en/forum.social.json
Es gibt ein Adobe Marketing Cloud GitHub-Projekt, das Folgendes enthält:
Dieses Repository enthält Tools zum Verwalten von Daten in SRP.
Derzeit gibt es ein Servlet, das die Möglichkeit bietet, alle UGC aus einem SRP zu löschen.
So löschen Sie z. B. alle UGC in ASRP:
curl -X POST http://localhost:4502/services/social/srp/cleanup?path=/content/usergenerated/asi/cloud -uadmin:admin
Aktivieren Sie die DEBUG-Protokollierung für
com.adobe.cq.social.srp.impl.SocialSolrConnector
.
Die tatsächliche SOR-Abfrage wird im Debug-Protokoll kodiert angezeigt:
Abfrage zu lösen ist: 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
Der Wert des Parameters q
ist die Abfrage. Nachdem die URL-Kodierung entschlüsselt wurde, kann die Abfrage zur weiteren Debugging an das Tool zur Abfrage der Administratoren weitergeleitet werden.