Solr - Estudo de ferramenta de busca
INTRODUÇÃO
Apache Solr (pronunciada como "solar") é uma popular ferramenta de busca gratuíta, de código aberto e altamente eficiente. Esta foi escrita em Java, dee códigobaseada aberto pelono projeto Apache Lucene.
O Solr, no entanto, é mais do que um mecanismo de busca. Ele também é frequentemente usado como um banco de dados NoSQL baseado em documentos com suporte transacional que pode ser usado para fins de armazenamento e até mesmo um armazenamento baseado em chave-valor.
A ferramenta possui APIs com suporte aos protocolos XML/HTTP e JSON além de bibliotecas de clientes para muitas linguagens de programação como Java, Phyton, Ruby, C#, PHP.
FUNCIONAMENTO
Seu funcionamento básico consiste na indexação de documentos via JSON, XML, CSV ou binários pelo HTTP. Ou seja, ao realizar consultas via HTTP GET, ela retornará resultados em JSON, XML, CSV ou resultados binários.
BENEFÍCIOS NA UTILIZAÇÃO
O Apache Solr conta com diversos benefícios em sua utilização, dentre eles estão:
- Recursos avançados de pesquisa de texto
completo;completo (full-text search); - Suporte a pesquisas de alto volume;
- Suporte a consultas baseadas em REST API;
- Interface de administração avançada;
- Fácil monitoramento
- Altamente escalável;
- Tolerante a falhas;
- Cache altamente configurá
vel e extensível ao usuário;vel; Etc;Possibilidade de extensão das funcionalidades via plug-ins;
Por implementar o padrão HTTP Rest-like APIs com suporte a XML e JSON, é possível integra-lo em qualquer sistema ou linguagem de programação que dê suporte a estes padrões. Existem bibliotecas específicas para Java, C#, PHP, Python, Ruby, entre várias outras linguagens.
IMPLEMENTAÇÃO E HISTÓRIAS DE USUÁRIO
Para a devida implementação do Solr, é necessário levar em consideração as mudanças na arquitetura vigente.
Em uma típica aplicação cliente-server, a API recebe requisições que são convertidas para operações de CRUD pelo servidor que irá operar na base de dados:
Porém, ao implementar o Solr os dados passam a ser duplicados, então estes residirão na base de dados e no Solr, logo a arquitetura será mudada para:
Nem todos os dados serão duplicados, apenas os dados necessários para a consulta das aplicações. Sendo possível escolher realizar consultas na base de dados ou então no Solr.
Para a implementação do Solr no sistema Alpha, foram levantadas as seguintes histórias de usuário.
HISTÓRIA |
PONTUAÇÃO |
Configurar instância do Solr no OpenShift |
|
Instalar e configurar no projeto Alpha Solicitações |
34 |
Instalar e configurar no projeto Alpha Serviços |
34 |
Integrar principais consultas do Alpha Solicitações com o Solr |
13 |
Integrar principais consultas do Alpha Serviços com o Solr |
13 |
TOTAL |
94 |
POSSÍVEIS PROBLEMAS NA UTILIZAÇÃO
Existem algumas preocupações com possíveis problemas na utilização do Solr, algumas delas são:
- Problemas de performance;
- Custo de tempo/processamento até se tornar viável;
- Problemas conhecidos com modificações na indexação;
PRINCIPAIS ALTERNATIVAS
Elasticsearch – Freemium/Proprietário
Melisearch – Free/OpenSource
Apache Spark - Free/OpenSource
VALOR AGREGADO
A utilização de ferramentas como o Solr agrega muito valor aos softwares que os integram devido a sua praticidade e abordagem para resolução de grandes problemas empresariais.
CONCLUSÃO
A ferramenta de busca Apache Solr se mostra satisfatoriamente rápida para busca/análise de texto devido à sua estrutura de indexação. Sua documentação é abrangente e sua estrutura consistente. Grandes companhias AT&T, Amazon e Netflix a utilizam para diversas soluções de larga escala, logo, com algumas ressalvas, a utilização desta tecnologia se torna atrativa para as soluções propostas.
REFERÊNCIAS
https://briancaos.wordpress.com/2021/02/05/c-net-core-solr-search-read-from-a-solr-index/
https://cwiki.apache.org/confluence/display/solr/solrperformanceproblems
https://docs.cloudera.com/runtime/7.2.8/release-notes/topics/rt-pubc-known-issues-solr.html
https://www.xtivia.com/blog/apache-solr-introduction-and-advantages/