Big Data
O LumisXP possui um framework de Big Data que permite que seja customizável o repositório de Big Data a ser utilizado. Nativamente são incluídas opções para utilizar Elasticsearch. Conectores para outros tipos de repositórios podem ser implementados e integrados ao LumisXP. Para informações de como instalar o Elasticsearch veja Instalando o Elasticsearch.
Características
Cada item armazenado no Big Data é chamado de documento. Um documento pode possuir vários campos, cada um com seu valor.
Existe uma API disponível em Java para acessar o repositório de Big Data. Acessando o repositório é possível adicionar e remover documentos, e efetuar buscas por documentos. Para maiores informações sobre esta API, acesse o javadoc em lumis.portal.bigdata.
Para reindexar os dados armazenados no repositório de Big Data, acesse Configurações > Frameworks > Big Data. Usualmente é necessário efetuar uma reindexação se os dados a serem armazenados sofreram alguma alteração e estão desatualizados, como por exemplo, após a estrutura de dados de um serviço ser alterada.
Os ProcessActionHandlers padrões de DOUI e o framework de Content atualizam os documentos correspondentes no repositório de Big Data cada vez que ocorre uma adição, atualização ou exclusão.
Customizações
Para cada serviço DOUI ou Content é possível configurar, no nível do source, qual big data persister será utilizado para indexar seus dados. Além disso, também é possível especificar em cada campo do source configurações sobre o armazenamento deste campo no big data, que serão utilizadas pelo persister padrão.
Também é possível customizar o forma de indexação padrão em um data type customizado. Campos por padrão seguem a implementação utilizada no seu respectivo data type.
Sinônimos
Os sinônimos cadastrados no Serviço "Sinônimos para busca" só são aplicados pelo user query de uma SearchQuery, não sendo aplicados genericamente em filtros em campos específicos.
No repositório nativo de Big Data baseado em Elasticsearch, os sinônimos funcionam como descrito abaixo.
No analisador padrão utilizado pelo portal, as palavras sinônimas utilizadas passam pelo filtro de token stemmer. Então, em português, por exemplo, as palavras bolo
e bola
representam o mesmo token (
bol
), já que o stemmer removeria tanto o último a
em bola
quanto o último o
em bolo
.
Dessa forma, caso haja um sinônimo cadastrado com as palavras bolo
e doce
e o usuário efetue uma busca por
bola
, ele irá encontrar conteúdos com a palavra doce
.
O processo de uso dos sinônimos pelo portal é:
- Um publicador cadastra novas palavras sinônimas.
- O portal escreve, então, arquivos de sinônimos no formato Solr
(um para cada linguagem cadastrada no portal) em:
<lumisdata>/shared/data/elasticsearch/lumis-analysis/synonyms-<locale>.txt
, onde<locale>
é a linguagem do índice (pt_BR
para português, por exemplo). A pasta<lumisdata>/shared/data/elasticsearch/lumis-analysis
deve ser mapeada em cada servidor do cluster de Elasticsearch sendo utilizado pelo portal dentro de sua pastaconfig
(veja a propriedadesynonyms_path
da documentação), de forma que os arquivos escritos pelo portal sejam disponibilizados em<config>/lumis-analysis/synonyms-<locale>.txt
, nos servidores Elasticsearch.
Nesse momento, esses sinônimos ainda não estarão disponíveis para a busca. - Um processo que é executado em segundo plano percebe que houve mudanças no cadastro de sinônimos.
Para que as alterações nos sinônimos sejam corretamente recarregadas pelo Elasticsearch, esse processo recarrega os analizadores dos índices apropriados. - Quando um índice for criado pelo portal, utilizando esta API de Big Data, esse índice já estará configurado para utilizar o arquivo de sinônimos criado pelo portal em uma eventual busca.
Popularidade de conteúdos
O LumisXP, por padrão, calcula a popularidade de conteúdos uma vez por dia, durante a madrugada.
Uma classe que implemente a interface lumis.portal.bigdata.IDocumentPopularityProvider
pode ser utilizada para
customizar esse cálculo.
Veja a documentação dos métodos getDocumentPopularities
e getDocumentPopularity
para detalhes de como
customizar as popularidades.
O portal utiliza, por padrão, a implementação lumis.portal.bigdata.StandardDocumentPopularityProvider
para cálculo das popularidades.
A implementação padrão possui as seguintes configurações:
-
Número máximo de conteúdos afetados
-
Esse é o número máximo de conteúdos que terão suas popularidades alteradas pelo processo de cálculo. Todos os outros conteúdos terão popularidade
1
(que não influencia na relevância na busca).
Valor padrão:1000
. -
Janela de visitantes únicos
-
Essa configuração determina o período (em horas) para ser levado em conta quando for calculado os conteúdos com mais visitantes únicos. Ou seja, quando o portal for calcular quais conteúdos tiveram
mais acessos únicos, filtrará pelos acessos realizados entre o momento atual e o momento atual menos essa configuração em horas.
Padrão:1440
horas (o equivalente a 60 dias). -
Limite de visitantes únicos
-
É um limite configurável de visitantes únicos para um conteúdo. Entre
0
eLimite de visitantes únicos
, quanto maior o número de visitantes únicos a um conteúdo, maior será sua influência na popularidade. Ao chegar emLimite de visitantes únicos
, a influência sobre a popularidade do conteúdo atingirá seu valor máximo e a partir desse limite continuará sendo esse mesmo valor máximo.
Caso não preenchido, o valor padrão para esse parâmetro é calculado da seguinte forma:
- O portal faz uma consulta para obter o número total de visitantes únicos dentro do período configurado na
Janela de visitantes únicos
. - O valor padrão para
Limite de visitantes únicos
será 50% do total de visitantes únicos. Ou seja, caso no período o portal tenha tido 100 visitantes únicos, o parâmetroLimite de visitantes únicos
vai assumir o valor padrão de50
. Esse valor será arredondado para o menor inteiro maior ou igual ao resultado. Por exemplo, caso o total de visitantes únicos seja33
, 50% seria16,5
. Esse valor será arredondado para17
.
- O portal faz uma consulta para obter o número total de visitantes únicos dentro do período configurado na
-
Limite de idade
-
É um limite configurável de idade de um conteúdo (em horas). Entre
0
(o conteúdo acabou de ser publicado) eLimite de idade
, quanto menor for a idade do conteúdo, maior será sua influência na popularidade. A partir deLimite de idade
, a idade do conteúdo passa a não influenciar a popularidade do conteúdo.
Padrão:720
horas (o equivalente a 30 dias).
Essa implementação funciona da seguinte forma:
- Obtém, limitado ao
Número máximo de conteúdos afetados
, os conteúdos mais recentemente cadastrados. - Obtém, limitado ao
Número máximo de conteúdos afetados
, os conteúdos que tiveram mais visitantes únicos durante o períodoJanela de visitantes únicos
. - Com esses conteúdos, aplica a seguinte fórmula em cada um para determinar sua popularidade:
Nessa fórmula, a popularidade de um conteúdo pode variar de1
até25
. - Ordena esses conteúdos de forma decrescente de acordo com a popularidade.
- Mantém somente
Número máximo de conteúdos afetados
conteúdos nessa lista. - Reseta a popularidade de todos os outros conteúdos no repositório de Big Data.
- Configura a popularidade desses
Número máximo de conteúdos afetados
conteúdos no repositório de Big Data.