Tutorial do Apache Solr

Tutorial do Apache Solr
Nesta lição, veremos como podemos usar o Apache Solr para armazenar dados e como podemos executar várias consultas.

O que é Apache Solr

O Apache Solr é um dos bancos de dados NOSQL mais populares que podem ser usados ​​para armazenar dados e consultá-los quase em tempo real. É baseado no Apache Lucene e está escrito em Java. Assim como o Elasticsearch, ele suporta consultas de banco de dados através de APIs de repouso. Isso significa que podemos usar chamadas HTTP simples e métodos HTTP como get, postar, colocar, excluir etc. para acessar dados. Ele também oferece uma opção para obter dados na forma de XML ou JSON através das APIs restantes.

Arquitetura: Apache Solr

Antes que possamos começar a trabalhar com o Apache Solr, precisamos entender os componentes que constituem o Apache Solr. Vamos dar uma olhada em alguns componentes que ele tem:

Arquitetura Apache Solr

Observe que apenas os principais componentes para Solr são mostrados na figura acima. Vamos entender a funcionalidade deles aqui também:

  • Solicitar manipuladores: Os pedidos que um cliente faz para Solr são gerenciados por um manipulador de solicitação. A solicitação pode ser qualquer coisa, desde adicionar um novo registro para atualizar um índice no Solr. Os manipuladores identificam o tipo de solicitação do método HTTP usado com o mapeamento de solicitação.
  • Componente de pesquisa: Este é um dos componentes mais importantes que Solr é conhecido por. O componente de pesquisa cuida da execução de operações relacionadas à pesquisa, como esfera, verificações ortográficas, consultas de termo etc.
  • Analisador de consulta: Este é o componente que realmente analisa a consulta que um cliente passa para o manipulador de solicitação e divide uma consulta em várias partes que podem ser entendidas pelo mecanismo subjacente
  • Escritor de resposta: Este componente é responsável por gerenciar o formato de saída para as consultas passadas para o motor. O Writer Response nos permite fornecer uma saída em vários formatos, como XML, JSON etc.
  • Analisador/tokenizer: Lucene Engine entende consultas na forma de vários tokens. Solr analisa a consulta, divide -a em vários tokens e passa para o motor Lucene.
  • Atualizar processador de solicitação: Quando uma consulta é executada e executa operações como atualizar um índice e dados relacionados a ela, o componente do processador de solicitação de atualização é responsável por gerenciar os dados no índice e modificá -lo.

Introdução ao Apache Solr

Para começar a usar o Apache Solr, ele deve ser instalado na máquina. Para fazer isso, leia Instale o Apache Solr no Ubuntu.

Certifique -se de ter uma instalação ativa do Solr, se quiser experimentar exemplos que apresentamos mais adiante na lição e a página de administração estiver acessível no host:

Página inicial do Apache Solr

Inserção de dados

Para começar, vamos considerar uma coleção em Solr, que chamamos de linux_hint_collection. Não há necessidade de definir explicitamente esta coleção como quando inserirmos o primeiro objeto, a coleção será feita automaticamente. Vamos tentar nossa primeira chamada de API REST para inserir um novo objeto na coleção nomeada linux_hint_collection.

Inserção de dados

Curl -x Post -H 'Tipo de Conteúdo: Aplicativo/JSON'
'http: // localhost: 8983/solr/linux_hint_collection/update/json/docs' ---data-binary '

"id": "iduye",
"Nome": "Shubham"
'

Aqui está o que recebemos com este comando:

Comando para inserir dados no solr

Os dados também podem ser inseridos usando a página inicial do Solr que analisamos anteriormente. Vamos tentar isso aqui para que as coisas fiquem claras:

Insira dados via Solr Homepage

Como Solr tem uma excelente maneira de interação com as APIs RESTful HTTP, demonstraremos a interação do banco de dados usando as mesmas APIs a partir de agora e não focará muito na inserção de dados através da página da Solr.

Liste todas as coleções

Podemos listar todas as coleções no Apache Solr usando uma API REST também. Aqui está o comando que podemos usar:

Liste todas as coleções

Curl http: // localhost: 8983/solr/admin/coleções?ações = list & wt = json

Vamos ver a saída para este comando:

Vemos duas coleções aqui que existem em nossa instalação do Solr.

Obtenha objeto por id

Agora, vamos ver como podemos obter dados da coleção Solr com um ID específico. Aqui está o comando REST API:

Obtenha objeto por id

Curl http: // localhost: 8983/solr/linux_hint_collection/get?id = iduye

Aqui está o que recebemos com este comando:

Obtenha todos os dados

Em nossa última API REST, consultamos dados usando um ID específico. Desta vez, obteremos todos os dados presentes em nossa coleção Solr.

Obtenha objeto por id

Curl http: // localhost: 8983/solr/linux_hint_collection/select?Q =*:*

Aqui está o que recebemos com este comando:

Observe que usamos '*:*' no parâmetro de consulta. Isso especifica que o Solr deve retornar todos os dados presentes na coleção. Mesmo se especificarmos que todos os dados devem ser retornados, Solr entende que a coleção pode ter uma grande quantidade de dados e assim, ele só retornará os 10 primeiros documentos.

Excluir todos os dados

Até agora, todas as APIs que tentamos estavam usando um formato JSON. Desta vez, tentaremos o formato de consulta XML. O uso do formato XML é extremamente semelhante ao JSON, pois o XML é auto-descritivo também.

Vamos tentar um comando para excluir todos os dados que temos em nossa coleção.

Excluir todos os dados

Curl "http: // localhost: 8983/solr/linux_hint_collection/update?Commit = True "-h" Type: text/xml "-data-binário"*:*"

Aqui está o que recebemos com este comando:

Exclua todos os dados usando a consulta XML

Agora, se tentarmos novamente obter todos os dados, veremos que nenhum dado está disponível agora:

Obtenha todos os dados

Contagem total de objetos

Para um comando Final Curl, vamos ver um comando com o qual podemos encontrar o número de objetos que estão presentes em um índice. Aqui está o comando para o mesmo:

Contagem total de objetos

Curl http: // localhost: 8983/solr/linux_hint_collection/Query?Debug = Query & q =*:*

Aqui está o que recebemos com este comando:

Contagem número de objetos

Conclusão

Nesta lição, analisamos como podemos usar as consultas Apache Solr e passar usando o CURL no formato JSON e XML. Também vimos que o painel de administrador do Solr é útil da mesma maneira que todos os comandos Curl que estudamos.