Die Suchfunktion ist ein wesentliches Merkmal von AEM Communities. Zusätzlich zu den AEM Plattformsuche Funktionen bietet AEM Communities die UGC-Such-API für die Suche nach benutzergenerierten Inhalten (UGC). UGC verfügt über eindeutige Eigenschaften, da es separat von anderen AEM-Inhalten und Benutzerdaten eingegeben und gespeichert wird.
Für Communities werden im Allgemeinen zwei Dinge gesucht:
Inhalt von Community-Mitgliedern
Benutzer und Benutzergruppen (Benutzerdaten)
Dieser Abschnitt der Dokumentation ist für Entwickler von Interesse, die benutzerdefinierte Komponenten erstellen, die benutzergenerierte Inhalte erstellen oder verwalten.
Für eine benutzerdefinierte Komponente muss die SocialResourceUtilities -Methoden. Die Dienstprogrammmethoden, die UGC erstellen und suchen, stellen die erforderlichen Shadow-Knoten und stellen Sie sicher, dass das Mitglied über die richtigen Berechtigungen für die Anfrage verfügt.
Was nicht über die SRP-Dienstprogramme verwaltet wird, sind Eigenschaften im Zusammenhang mit der Moderation.
Siehe Grundlagen zu SRP und UGC für Informationen zu Dienstprogrammmethoden, die für den Zugriff auf UGC- und ACL-Shadow-Knoten verwendet werden.
Die UGC Common Store wird von einem von verschiedenen Speicherressourcenanbietern (SRPs) bereitgestellt, von denen jeder möglicherweise eine andere Muttersprache hat. Daher sollte benutzerdefinierter Code unabhängig vom gewählten SRP Methoden aus dem UGC API-Paket (com.adobe.cq.social.ugc.api), wodurch die für das ausgewählte SRP geeignete Abfragesprache aufgerufen wird.
Für ASRP, wird UGC in der Adobe Cloud gespeichert. Während UGC in CRX nicht sichtbar ist, Moderation ist sowohl in der Autoren- als auch in der Veröffentlichungsumgebung verfügbar. Die Verwendung der UGC-Such-API funktioniert für ASRP genauso wie für andere SRPs.
Es gibt derzeit keine Tools für die Verwaltung von ASRP-Suchen.
Beim Erstellen von benutzerdefinierten Eigenschaften, die durchsuchbar sind, müssen Sie die Namensanforderungen.
Für MSRP, wird UGC in MongoDB gespeichert, das für die Verwendung von Solr für die Suche konfiguriert ist. UGC ist in CRX nicht sichtbar, aber Moderation ist sowohl in der Autoren- als auch in der Veröffentlichungsumgebung verfügbar.
MSRP und Solr:
Benutzerdefinierte Suchfunktionen sollten UGC-Such-API.
Beim Erstellen von benutzerdefinierten Eigenschaften, die durchsuchbar sind, müssen Sie die Namensanforderungen.
Für JSRP, wird UGC in gespeichert. Oak und ist nur im Repository der AEM- oder Veröffentlichungsinstanz sichtbar, in der sie eingegeben wurde.
Da UGC in der Regel in die Veröffentlichungsumgebung eingegeben wird, muss für Produktionssysteme mit mehreren Herausgebern ein Veröffentlichungscluster, nicht eine Veröffentlichungsfarm, sodass der eingegebene Inhalt für alle Herausgeber sichtbar ist.
Bei JSRP sind in der Veröffentlichungsumgebung eingegebene benutzergenerierte Inhalte in der Autorenumgebung nie sichtbar. Daher alle Moderation Aufgaben finden in der Veröffentlichungsumgebung statt.
Benutzerdefinierte Suchfunktionen sollten UGC-Such-API.
Oak-Indizes werden zwar nicht automatisch für die AEM-Plattformsuche erstellt, wurden aber seit AEM 6.2 für AEM Communities hinzugefügt, um die Leistung zu verbessern und die Paginierung bei der Präsentation von UGC-Suchergebnissen zu unterstützen.
Wenn benutzerdefinierte Eigenschaften verwendet werden und die Suche langsam ist, müssen zusätzliche Indizes für die benutzerdefinierten Eigenschaften erstellt werden, damit sie leistungsfähiger werden. Um die Portabilität zu wahren, halten Sie die Namensanforderungen beim Erstellen von benutzerdefinierten Eigenschaften, die durchsuchbar sind.
Informationen zum Ändern vorhandener Indizes oder Erstellen benutzerdefinierter Indizes finden Sie unter Oak-Abfragen und Indizierung.
Die Oak Index Manager ist in ACS AEM Commons verfügbar. Es bietet:
So zeigen Sie die vorhandenen Oak-Indizes in CRXDE Lite, lautet der Speicherort:
/oak:index/socialLucene
Im Folgenden finden Sie einige der durchsuchbaren Eigenschaften, 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 |
modifiedDate | 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 Sortierungen und Suchen sichtbar sind, die mit der UGC-Such-API, ist es erforderlich, dem Eigenschaftsnamen ein Suffix hinzuzufügen.
Das Suffix richtet sich an Abfragesprachen, die ein Schema verwenden:
Solr ist ein Beispiel für eine Abfragesprache, die ein Schema verwendet.
Suffix | Datentyp |
---|---|
_b | Boolesch |
_dt | Kalender |
_d | Double |
_tl | Lang |
_S | Zeichenfolge |
_t | Text |
Anmerkungen:
Text eine tokenisierte Zeichenfolge ist, Zeichenfolge ist nicht. Verwendung Text für unscharfe (mehr wie diese) Suchen.
Fügen Sie dem Suffix für Typen mit mehreren Werten "s"hinzu, z. B.:
viewDate_dt
: EinzeldatumseigenschaftviewDates_dts
: Liste der DatumseigenschaftenKomponenten, die die Kommentarsystem unterstützt den Filterparameter, der zu seinen Endpunkten hinzugefügt wird.
Die Filtersyntax für die UND- und ODER-Logik lautet wie folgt (wird angezeigt, bevor sie URL-codiert wird):
So geben Sie OR einen Filterparameter mit kommagetrennten Werten an:
filter=name eq 'Jennifer',name eq 'Jen'
So legen Sie UND mehrere Filterparameter fest:
filter = name eq 'Jackson'&filter=message eq 'testing'
Die Standardimplementierung der Suchkomponente verwendet diese Syntax, wie in der URL zu sehen ist, die die Seite "Suchergebnisse"in der Handbuch zu Community-Komponenten. 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) verweist und nicht auf die Seite, 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 benutzergenerierten Inhalte aus einem SRP zu löschen.
So löschen Sie beispielsweise alle benutzergenerierten Inhalte in ASRP:
curl -X POST http://localhost:4502/services/social/srp/cleanup?path=/content/usergenerated/asi/cloud -uadmin:admin
Um Probleme mit einer Solr-Abfrage zu beheben, aktivieren Sie die DEBUG-Protokollierung für
com.adobe.cq.social.srp.impl.SocialSolrConnector
.
Die tatsächliche Solr-Abfrage wird im Debug-Protokoll als URL-kodiert angezeigt:
Die Abfrage an Solr lautet: 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 der q
-Parameter ist die Abfrage. Sobald die URL-Kodierung dekodiert wurde, kann die Abfrage zur weiteren Fehlerbehebung an das Solr Admin Query Tool übergeben werden.