InfoQ

InfoQ

Notícias

Meus Favoritos

Faça oLogin ou Cadastre-se para ativar o recurso de favoritos por tempo ilimitado.

O conteúdo foi adicionado aos favoritos!

Houve um erro ao adicionar aos favoritos! Por favor, tente novamente.

Hibernate Search 3.1 traz grandes melhorias Dynamic Search Analyser e Query Time Perfomance

Postado por Srini Penchikala , traduzido por Anderson Duarte Vaz em 05 Jan 2009

Seções
Desenvolvimento,
Arquitetura e Design
Tópicos
Java ,
Buscas

A última versão do Hibernate Search, um framework open source de consulta nos objetos domínio do grupo Hibernate, recebeu melhorias nos mecanismos de análise de buscas dinâmicas e indexação e também no desempenho no tempo de consulta. O time de desenvolvimento do Hibernate Search anunciou o lançamento da versao 3.1 do framework. A nova versão também inclui funcionalidades como suporte a term vector nas buscas e na criação dos índices dos objetos, acesso pelo escopo do analisador no momento de execução da consulta e acesso ao objeto Results Explanation.

Analyzer Model:

  • TO novo analisador de modelo pode ser configurado declarativamente para uso e criação de funcionalidades como aproximação fonética, aproximação n-gram, busca por sinônimos, filtragem por "stop words", elision correction e busca por caracteres não acentuados.
  • Os analisadores podem ser composto como "tokenizadores" e por um conjunto de filtros usando o componente Apache Solr.
  • Analisadores Dinâmicos: Estes permitem que uma entidade defina qual analisador usar em tempo de execução, o que é útil em aplicações internacionalizadas onde a localidade de uma entidade é diferente de outra.

Indexing:
As melhorias no tempo de indexação são:

  • Melhor controle sobre a indexação manual e escrita do índice (consumo de RAM, non-compound file format flag, etc).
  • Suporte para term verctor e personalização de similaridade.
  • Melhor suporte para replicação de índices grandes.
  • Melhorado tempo de bloqueio e contenção durante a criação/atualização dos índices assim como a redução do número de abertura/fechamento dos mesmos.
  • Os índices agora são criados em paralelo para cada diretório.

Consulta:
Novas funcionalidades foram adicionadas para melhoria no tempo de consulta como as seguintes:

  • Foi exposto o analisador do escopo das entidades para facilitar o reuso e melhorar o tempo de consulta.
  • Filtragem de resultados (DocIdSet) pode ser posto em cache declarativamente.
  • Explanation está exposto para melhor depurar a informação.
  • Reduzido o número de roundtrips ao banco de dados em consulta a múltiplas entidades.
  • As consultas Lucene estão mais rápidas em índices contendo um único tipo de entidade e reduzido o consumo de E/S no Lucene por ler somente o campos necessários de um documento (quando possível).
  • Melhor desempenho em propriedades projetadas (melhoria não percebida se for comparada com chamadas diretas ao Lucene).
  • Redução na leitura de documentos (durante a paginação e nas chamadas do getResultSize()).
  • Reabertura de índices mais rápidas (mantendo segmentos não alterados abertos) e melhor leitura de índice em concorrência (uso do controle de somente leitura).

Emmanuel Bernard blogou sobre o novo lançamento e suas características que ais quais incluem uso do SLF4J como o framework de logging e a migração para versão 2.4 do Lucene, versao 3.3 do Hibernate Core e JDK 5.0. Hibernate Search trabalha em modos não-cluterizados e clusterizados, fornece atualização síncronas e assíncronas de índices, dando a opção de escolher entre tempo de resposta, throughput e atualização. Ele também trabalha com todos tradicionais padrões do Hibernate, especialmente o grande (e atômico) padrão conversacional usado pelo JBoss Seam.

A última versão pode ser baixada no site dele e os logs de mudança estão disponíveis no JIRA. Migrar para essa versão é recomendada para todos os usuários (veja o guia de Migração). O documento road map mostra as novas funcionalidades que o time do Hibernate Search está planejando para futuros lançamentos do framework.

Conteúdo Educacional

Formando equipes de alto desempenho, parte 1: Início e fases de evolução

Nesta primeira parte de uma série sobre equipes de alto desempenho e gerenciamento Agile, veja uma introdução geral e uma apresentação dos estágios de formação das equipes.

Business Model Canvas, passo a passo

O Business Model Canvas é uma ferramenta estratégica para a construção visual de novos produtos ou serviços. Conheça cada um dos seus elementos e como preencher o Canvas, passo a passo.

Google Apps Script, Parte 2: Google Docs, triggers e envio de emails

Nessa segunda e última parte de uma série sobre o Google Apps Script, conheça como funciona o envio de emails, a conversão de documentos e como criar menus e triggers.

Serviços de cloud computing PaaS: um guia para desenvolvedores Java

Este artigo avalia seis dos mais importantes fornecedores de serviços de cloud computing PaaS para desenvolvedores Java, analisando critérios como desempenho, escalabilidade e tecnologias suportadas.

Canvas de Modelo de Negócios: uma contribuição para o sucesso de Startups

O Canvas de Modelo de Negócios é um novo modo de comunicar e suportar a validação iterativa, incremental e empírica de modelos de negócio de startups e novos produtos substituindo o plano de negócios.

Entrevista com Rebecca Parsons Parte 2: Agile Distribuído, Arquitetura vs. Design e SOA

Nesta segunda e última parte de uma entrevista exclusiva para InfoQ Brasil, Rebecca Parsons, CTO da ThoughtWorks, fala sobre o Agile Distribuído e técnicas para definição de arquiteturas.

Entrevista com Rebecca Parsons Parte 1: Agile nas Empresas e Arquitetura Evolucionária

Nessa primeira parte de uma entrevista com a CTO da ThoughtWorks, veja recomendações sobre formas de construir e arquitetar sistemas para obter o máximo de flexibilidade e responsividade a mudanças.

Agile das equipes à organização: o papel do gerente, estratégias e dicas para a adoção

Os gerentes de projetos podem assumir o papel crítico de liderar a introdução do Agile. Vejas conceitos, dicas e técnicas para apoiar esse processo de mudanças.