Open the menu

    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 é:

    1. Um publicador cadastra novas palavras sinônimas.
    2. 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 pasta config (veja a propriedade synonyms_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.
    3. 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.
    4. 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 e Limite de visitantes únicos, quanto maior o número de visitantes únicos a um conteúdo, maior será sua influência na popularidade. Ao chegar em Limite 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:
    1. O portal faz uma consulta para obter o número total de visitantes únicos dentro do período configurado na Janela de visitantes únicos.
    2. 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âmetro Limite de visitantes únicos vai assumir o valor padrão de 50. Esse valor será arredondado para o menor inteiro maior ou igual ao resultado. Por exemplo, caso o total de visitantes únicos seja 33, 50% seria 16,5. Esse valor será arredondado para 17.
    Limite de idade
    É um limite configurável de idade de um conteúdo (em horas). Entre 0 (o conteúdo acabou de ser publicado) e Limite de idade, quanto menor for a idade do conteúdo, maior será sua influência na popularidade. A partir de Limite 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:
    1. Obtém, limitado ao Número máximo de conteúdos afetados, os conteúdos mais recentemente cadastrados.
    2. Obtém, limitado ao Número máximo de conteúdos afetados, os conteúdos que tiveram mais visitantes únicos durante o período Janela de visitantes únicos.
    3. Com esses conteúdos, aplica a seguinte fórmula em cada um para determinar sua popularidade:
      Fórmula de popularidade
      Fórmula de popularidade

      Nessa fórmula, a popularidade de um conteúdo pode variar de 1 até 25.
    4. Ordena esses conteúdos de forma decrescente de acordo com a popularidade.
    5. Mantém somente Número máximo de conteúdos afetados conteúdos nessa lista.
    6. Reseta a popularidade de todos os outros conteúdos no repositório de Big Data.
    7. Configura a popularidade desses Número máximo de conteúdos afetados conteúdos no repositório de Big Data.