O recurso de pesquisa é um recurso essencial do AEM Communities. Além dos recursos AEM pesquisa de plataforma, a AEM Communities fornece a API de pesquisa UGC para fins de pesquisa de conteúdo gerado pelo usuário (UGC). O UGC tem propriedades exclusivas à medida que é inserido e armazenado separadamente de outro conteúdo AEM e dados do usuário.
Para Comunidades, as duas coisas geralmente pesquisadas são:
Conteúdo postado por membros da comunidade
Usuários e grupos de usuários (dados do usuário)
Esta seção da documentação é de interesse para desenvolvedores que estão criando componentes personalizados que criam ou gerenciam o UGC.
Para um componente personalizado, é necessário usar os métodos SocialResourceUtilities. Os métodos de utilitários que criam e pesquisam por UGC estabelecerão os nós de sombra necessários e garantirão que o membro tenha as permissões corretas para a solicitação.
O que não é gerenciado pelos utilitários SRP são propriedades relacionadas à moderação.
Consulte SRP e UGC Essentials para obter informações sobre métodos de utilitários usados para acessar nós de sombra UGC e ACL.
O repositório comum UGC é fornecido por um dos provedores de recursos de armazenamentos (SRPs), cada um com possivelmente uma linguagem de query nativa diferente. Portanto, independentemente do SRP escolhido, o código personalizado deve usar métodos do pacote da API UGC (com.adobe.cq.social.ugc.api) que chamarão a linguagem do query apropriada para o SRP escolhido.
Para ASRP, o UGC é armazenado na nuvem do Adobe. Embora o UGC não esteja visível no CRX, moderação está disponível nos ambientes de autor e publicação. O uso da API de pesquisa UGC funciona para o ASRP da mesma forma que para outros SRPs.
Atualmente, não existem ferramentas para gerenciar pesquisas ASRP.
Ao criar propriedades personalizadas que podem ser pesquisadas, é necessário seguir os requisitos de nomenclatura.
Para MSRP, o UGC é armazenado no MongoDB configurado para usar o Solr para pesquisa. O UGC não estará visível no CRX, mas moderação está disponível nos ambientes de autor e publicação.
Relativamente ao MSRP e ao Solr:
Os recursos de pesquisa personalizados devem usar a API de pesquisa UGC.
Ao criar propriedades personalizadas que podem ser pesquisadas, é necessário seguir os requisitos de nomenclatura.
Para JSRP, o UGC é armazenado em Oak e está visível apenas no repositório da instância de autor ou publicação AEM na qual foi inserido.
Como o UGC normalmente é inserido no ambiente de publicação, para sistemas de produção de vários editores, é necessário configurar um cluster de publicação, não um farm de publicação, para que o conteúdo inserido seja visível de todos os editores.
Para JSRP, o UGC inserido no ambiente de publicação nunca estará visível no ambiente do autor. Assim, todas as tarefas moderação ocorrem no ambiente de publicação.
Os recursos de pesquisa personalizados devem usar a API de pesquisa UGC.
Embora os índices Oak não sejam criados automaticamente para a pesquisa da plataforma AEM, a partir do AEM 6.2 eles foram adicionados à AEM Communities para melhorar o desempenho e fornecer suporte à paginação ao apresentar resultados de pesquisa UGC.
Se as propriedades personalizadas estiverem em uso e as pesquisas estiverem lentas, será necessário criar índices adicionais para que as propriedades personalizadas sejam mais eficientes. Para manter a portabilidade, siga os requisitos de nomenclatura ao criar propriedades personalizadas que podem ser pesquisadas.
Para modificar índices existentes ou criar índices personalizados, consulte Query Oak e Indexação.
O Oak Index Manager está disponível no ACS AEM Commons. Ele fornece:
Para visualização dos índices Oak existentes em CRXDE Lite, o local é:
/oak:index/socialLucene
Veja a seguir algumas das propriedades pesquisáveis usadas para vários recursos das Comunidades:
Propriedade | Tipo de dados |
---|---|
isFlagged | Booleano |
isSpam | Booleano |
leitura | Booleano |
influência | Booleano |
anexos | Booleano |
sentimento | Longo |
sinalizado | Booleano |
adicionado | Data |
modifiedDate | Data |
estado | Sequência de caracteres |
userIdentifier | Sequência de caracteres |
response | Longo |
jcr:title | Sequência de caracteres |
jcr:description | Sequência de caracteres |
sling:resourceType | Sequência de caracteres |
allowThreadedReply | Booleano |
isDraft | Booleano |
publishDate | Data |
publishJobId | Sequência de caracteres |
respondido | Booleano |
escolhido | Booleano |
tag | Sequência de caracteres |
cq:Tag | Sequência de caracteres |
author_display_name | Sequência de caracteres |
location_t | Sequência de caracteres |
parentPath | Sequência de caracteres |
parentTitle | Sequência de caracteres |
Ao adicionar propriedades personalizadas, para que essas propriedades fiquem visíveis para as classificações e pesquisas criadas com a API de pesquisa UGC, é obrigatório para adicionar um sufixo ao nome da propriedade.
O sufixo é para idiomas de query que usam um schema:
Solr é um exemplo de uma linguagem de query que usa um schema.
Sufixo | Tipo de dados |
---|---|
_b | Booleano |
_dt | Calendário |
_d | Duplo |
_tl | Longo |
_s | Sequência de caracteres |
_t | Texto |
Notas:
O texto é uma string tokenizada, ** Stringis não. Use Texto para pesquisas difusas (mais parecidas com esta).
Para tipos de valores múltiplos, adicione "s" ao sufixo, por exemplo:
viewDate_dt
: propriedade de data únicaviewDates_dts
: propriedade lista de datasOs componentes que incluem o sistema de comentários suportam a adição do parâmetro de filtro aos respectivos pontos finais.
A sintaxe de filtro para a lógica E e OU é expressa da seguinte forma (mostrada antes de ser codificada para URL):
Para especificar OU use um parâmetro de filtro com valores separados por vírgula:
filter=name eq 'Jennifer',name eq 'Jen'
Para especificar E usar vários parâmetros de filtro:
filter = name eq 'Jackson'&filter=message eq 'testing'
A implementação padrão do componente de pesquisa usa essa sintaxe, como pode ser visto no URL que abre a página Resultados da pesquisa no guia Componentes da comunidade. Para experimentar, navegue até http://localhost:4503/content/community-components/en/search.html.
Os operadores de filtro são:
EQ | igual |
---|---|
NE | não é igual |
LT | menor que |
LTE | menor que ou igual a |
GE | maior que |
GTE | maior que ou igual a |
CURTIR | correspondência difusa |
É importante que o URL faça referência ao componente Comunidades (recurso) e não à página na qual o componente é colocado:
/content/community-components/en/forum/jcr:content/content/forum.social.json
/content/community-components/en/forum.social.json
Existe um projeto Adobe Marketing Cloud GitHub que contém:
Ferramentas do AEM Communities SRP
Esse repositório contém ferramentas para gerenciar dados no SRP.
Atualmente, existe um servlet que oferece a capacidade de excluir todo o UGC de qualquer SRP.
Por exemplo, para excluir todo o UGC no ASRP:
curl -X POST http://localhost:4502/services/social/srp/cleanup?path=/content/usergenerated/asi/cloud -uadmin:admin
Para ajudar a solucionar problemas com um query Solr, ative o registro DEBUG para
com.adobe.cq.social.srp.impl.SocialSolrConnector
.
O query Solr real será exibido no URL codificado no log de depuração:
O query a ser resolvido é: 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
O valor do parâmetro q
é o query. Depois que a codificação do URL é decodificada, o query pode ser passado para a ferramenta Solr Admin Query para depuração adicional.