Apache Solr

Apache Solr Configurar um Nó

Apache Solr Configurar um Nó

Parte 1: Configurando um único nó

Hoje, armazenar eletronicamente seus documentos ou dados em um dispositivo de armazenamento é rápido e fácil, e também é comparativamente barato. Em uso está uma referência de nome de arquivo que se destina a descrever do que trata o documento. Como alternativa, os dados são mantidos em um sistema de gerenciamento de banco de dados (DBMS) como PostgreSQL, MariaDB ou MongoDB para citar apenas algumas opções. Vários meios de armazenamento estão localmente ou remotamente conectados ao computador, como pen drive, disco rígido interno ou externo, Network Attached Storage (NAS), Cloud Storage ou GPU / Flash-based, como em um Nvidia V100 [10].

Em contraste, o processo inverso, encontrar os documentos certos em uma coleção de documentos, é bastante complexo. Em geral, requer a detecção do formato do arquivo sem falhas, a indexação do documento e a extração dos conceitos-chave (classificação do documento). É aqui que entra o framework Apache Solr. Ele oferece uma interface prática para realizar as etapas mencionadas - construir um índice de documentos, aceitar consultas de pesquisa, fazer a pesquisa real e retornar um resultado de pesquisa. Apache Solr, portanto, forma o núcleo para pesquisas eficazes em um banco de dados ou silo de documentos.

Neste artigo, você aprenderá como o Apache Solr funciona, como configurar um único nó, indexar documentos, fazer uma pesquisa e recuperar o resultado.

Os artigos de acompanhamento se baseiam neste e, neles, discutimos outros casos de uso mais específicos, como integração de um DBMS PostgreSQL como fonte de dados ou balanceamento de carga em vários nós.

Sobre o projeto Apache Solr

Apache Solr é uma estrutura de mecanismo de pesquisa baseada no poderoso servidor de índice de pesquisa Lucene [2]. Escrito em Java, é mantido sob a égide da Apache Software Foundation (ASF) [6]. Ele está disponível gratuitamente sob a licença Apache 2.

O tópico “Encontrar documentos e dados novamente” desempenha um papel muito importante no mundo do software, e muitos desenvolvedores lidam com ele intensamente. O site Awesomeopensource [4] lista mais de 150 projetos de mecanismo de busca de código aberto. No início de 2021, ElasticSearch [8] e Apache Solr / Lucene são os dois principais cães quando se trata de pesquisar conjuntos de dados maiores. Desenvolver seu mecanismo de pesquisa requer muito conhecimento, Frank faz isso com a biblioteca AdvaS Advanced Search [3] baseada em Python desde 2002.

Configurando o Apache Solr:

A instalação e operação do Apache Solr não são complicadas, é simplesmente uma série de etapas a serem realizadas por você. Reserve cerca de 1 hora para o resultado da primeira consulta de dados. Além disso, o Apache Solr não é apenas um projeto de hobby, mas também é usado em um ambiente profissional. Portanto, o ambiente de sistema operacional escolhido é projetado para uso de longo prazo.

Como ambiente base para este artigo, usamos o Debian GNU / Linux 11, que é o próximo lançamento do Debian (no início de 2021) e deverá estar disponível em meados de 2021. Para este tutorial, esperamos que você já o tenha instalado, seja como o sistema nativo, em uma máquina virtual como o VirtualBox, ou um contêiner AWS.

Além dos componentes básicos, você precisa que os seguintes pacotes de software sejam instalados no sistema:

Estes pacotes são componentes padrão do Debian GNU / Linux. Se ainda não estiver instalado, você pode pós-instalá-los de uma vez como um usuário com direitos administrativos, por exemplo, root ou via sudo, mostrado a seguir:

# apt-get install curl default-java libcommons-cli-java libxerces2-java libtika-java

Tendo preparado o ambiente, o 2º passo é a instalação do Apache Solr. A partir de agora, o Apache Solr não está disponível como um pacote Debian regular. Portanto, é necessário recuperar o Apache Solr 8.8 da seção de download do site do projeto [9] primeiro. Use o comando wget abaixo para armazená-lo no diretório / tmp do seu sistema:

$ wget -O / tmp https: // downloads.apache.org / lucene / solr / 8.8.0 / solr-8.8.0.tgz

A opção -O encurta -output-document e faz com que o wget armazene o tar recuperado.arquivo gz no diretório fornecido. O arquivo tem um tamanho de aproximadamente 190M. Em seguida, descompacte o arquivo no diretório / opt usando tar. Como resultado, você encontrará dois subdiretórios - / opt / solr e / opt / solr-8.8.0, enquanto / opt / solr é configurado como um link simbólico para o último. O Apache Solr vem com um script de configuração que você executa em seguida:

# / opt / solr-8.8.0 / bin / install_solr_service.sh

Isso resulta na criação do usuário do Linux solr executado no serviço Solr mais seu diretório inicial em / var / solr estabelece o serviço Solr, adicionado com seus nós correspondentes e inicia o serviço Solr na porta 8983. Estes são os valores padrão. Se não estiver satisfeito com eles, você pode modificá-los durante a instalação ou até mais tarde, pois o script de instalação aceita as opções correspondentes para ajustes de configuração. Recomendamos que você dê uma olhada na documentação do Apache Solr sobre esses parâmetros.

O software Solr está organizado nos seguintes diretórios:

Em mais detalhes, você pode ler sobre esses diretórios na documentação do Apache Solr [12].

Gerenciando Apache Solr:

Apache Solr é executado como um serviço em segundo plano. Você pode iniciá-lo de duas maneiras, usando systemctl (primeira linha) como um usuário com permissões administrativas ou diretamente do diretório Solr (segunda linha). Listamos os dois comandos do terminal abaixo:

# systemctl start solr
$ solr / bin / solr start

Parar o Apache Solr é feito de forma semelhante:

# systemctl stop solr
$ solr / bin / solr stop

A mesma maneira acontece ao reiniciar o serviço Apache Solr:

# systemctl restart solr
$ solr / bin / solr restart

Além disso, o status do processo Apache Solr pode ser exibido da seguinte forma:

# systemctl status solr
status $ solr / bin / solr

A saída lista o arquivo de serviço que foi iniciado, o carimbo de data / hora e as mensagens de log correspondentes. A figura abaixo mostra que o serviço Apache Solr foi iniciado na porta 8983 com o processo 632. O processo está sendo executado com sucesso por 38 minutos.

Para ver se o processo Apache Solr está ativo, você também pode fazer uma verificação cruzada usando o comando ps em combinação com grep. Isso limita a saída do ps para todos os processos do Apache Solr que estão atualmente ativos.

# ps ax | grep --color solr

A figura abaixo demonstra isso para um único processo. Você vê a chamada de Java que é acompanhada por uma lista de parâmetros, por exemplo, portas de uso de memória (512M) para escutar em 8983 para consultas, 7983 para solicitações de parada e tipo de conexão (http).

Adicionando usuários:

Os processos do Apache Solr são executados com um usuário específico chamado solr. Este usuário é útil no gerenciamento de processos Solr, upload de dados e envio de solicitações. Após a configuração, o usuário solr não tem uma senha e espera-se que tenha uma para fazer login para prosseguir. Defina uma senha para o usuário solr, como usuário root, é mostrado da seguinte forma:

# passwd solr

Administração Solr:

O gerenciamento do Apache Solr é feito usando o painel Solr. Ele pode ser acessado via navegador da web em http: // localhost: 8983 / solr. A figura abaixo mostra a visão principal.

À esquerda, você vê o menu principal que o leva às subseções para registro, administração dos núcleos do Solr, a configuração do Java e as informações de status. Escolha o núcleo desejado usando a caixa de seleção abaixo do menu. No lado direito do menu, as informações correspondentes são exibidas. A entrada do menu Dashboard mostra mais detalhes sobre o processo Apache Solr, bem como a carga atual e o uso de memória.

Saiba que o conteúdo do painel muda dependendo do número de núcleos Solr e dos documentos que foram indexados. As mudanças afetam os itens do menu e as informações correspondentes que são visíveis à direita.

Compreender como funcionam os motores de pesquisa:

Simplificando, os mecanismos de pesquisa analisam documentos, categorizam-nos e permitem que você faça uma pesquisa com base em sua categorização. Basicamente, o processo consiste em três estágios, que são denominados como rastreamento, indexação e classificação [13].

Rastejando é o primeiro estágio e descreve um processo pelo qual o conteúdo novo e atualizado é coletado. O mecanismo de pesquisa usa robôs que também são conhecidos como spiders ou crawlers, daí o termo rastreamento para percorrer os documentos disponíveis.

A segunda fase é chamada indexação. O conteúdo coletado anteriormente torna-se pesquisável transformando os documentos originais em um formato que o mecanismo de pesquisa entende. Palavras-chave e conceitos são extraídos e armazenados em bancos de dados (massivos).

A terceira fase é chamada classificação e descreve o processo de classificação dos resultados da pesquisa de acordo com sua relevância com uma consulta de pesquisa. É comum exibir os resultados em ordem decrescente para que o resultado com maior relevância para a consulta do pesquisador venha primeiro.

Apache Solr funciona de forma semelhante ao processo de três estágios descrito anteriormente. Como o popular mecanismo de busca Google, o Apache Solr usa uma sequência de coleta, armazenamento e indexação de documentos de diferentes fontes e os torna disponíveis / pesquisáveis ​​quase em tempo real.

Apache Solr usa diferentes maneiras de indexar documentos, incluindo o seguinte [14]:

  1. Usando um manipulador de solicitação de índice ao enviar os documentos diretamente para o Solr. Esses documentos devem estar nos formatos JSON, XML / XSLT ou CSV.
  2. Usando o manipulador de solicitação de extração (célula Solr). Os documentos devem estar nos formatos PDF ou Office, que são suportados pelo Apache Tika.
  3. Usando o manipulador de importação de dados, que transporta dados de um banco de dados e os cataloga usando nomes de coluna. O manipulador de importação de dados busca dados de e-mails, feeds RSS, dados XML, bancos de dados e arquivos de texto simples como fontes.

Um manipulador de consulta é usado no Apache Solr quando uma solicitação de pesquisa é enviada. O manipulador de consulta analisa a consulta fornecida com base no mesmo conceito do manipulador de índice para corresponder à consulta e aos documentos indexados anteriormente. As correspondências são classificadas de acordo com sua adequação ou relevância. Um breve exemplo de consulta é demonstrado abaixo.

Carregando documentos:

Para simplificar, usamos um conjunto de dados de amostra para o exemplo a seguir que já é fornecido pelo Apache Solr. O upload de documentos é feito como o solr do usuário. A etapa 1 é a criação de um núcleo com o nome techproducts (para uma série de itens de tecnologia).

$ solr / bin / solr create -c techproducts

Tudo está bem se você vir a mensagem “Created new core 'techproducts'”. A etapa 2 é adicionar dados (dados XML de exampledocs) aos produtos de tecnologia centrais criados anteriormente. Em uso está a ferramenta post que é parametrizada por -c (nome do núcleo) e os documentos a serem carregados.

$ solr / bin / post -c techproducts solr / example / exampledocs / *.xml

Isso resultará na saída mostrada abaixo e conterá a chamada inteira mais os 14 documentos que foram indexados.

Além disso, o painel mostra as mudanças. Uma nova entrada chamada techproducts é visível no menu suspenso do lado esquerdo, e o número de documentos correspondentes alterado no lado direito. Infelizmente, uma visão detalhada dos conjuntos de dados brutos não é possível.

Caso o núcleo / coleção precise ser removido, use o seguinte comando:

$ solr / bin / solr delete -c techproducts

Consultando dados:

Apache Solr oferece duas interfaces para consultar dados: por meio do painel baseado na web e linha de comando. Explicaremos os dois métodos abaixo.

O envio de consultas por meio do painel Solr é feito da seguinte maneira:

A linha de comando aceita a mesma consulta do Painel. A diferença é que você deve saber o nome dos campos da consulta. Para enviar a mesma consulta acima, você deve executar o seguinte comando em um terminal:

$ curl
http: // localhost: 8983 / solr / techproducts / query?q = ”manu”: ”Belkin

A saída está no formato JSON, conforme mostrado abaixo. O resultado consiste em um cabeçalho de resposta e a resposta real. A resposta consiste em dois conjuntos de dados.

Empacotando:

Parabéns! Você alcançou o primeiro estágio com sucesso. A infraestrutura básica está configurada e você aprendeu como fazer upload e consultar documentos.

A próxima etapa cobrirá como refinar a consulta, formular consultas mais complexas e compreender os diferentes formulários da web fornecidos pela página de consulta do Apache Solr. Além disso, discutiremos como pós-processar o resultado da pesquisa usando diferentes formatos de saída, como XML, CSV e JSON.

Sobre os autores:

Jacqui Kabeta é ambientalista, ávida pesquisadora, treinadora e mentora. Em vários países africanos, ela trabalhou na indústria de TI e ambientes de ONGs.

Frank Hofmann é desenvolvedor, instrutor e autor de TI e prefere trabalhar em Berlim, Genebra e Cidade do Cabo. Co-autor do Livro de gerenciamento de pacotes Debian disponível em dpmb.org

Como capturar e transmitir sua sessão de jogo no Linux
No passado, jogar era considerado apenas um hobby, mas com o tempo a indústria de jogos viu um grande crescimento em termos de tecnologia e número de ...
Melhores jogos para jogar com rastreamento manual
Oculus Quest introduziu recentemente a grande ideia de rastreamento manual sem controladores. Com um número cada vez maior de jogos e atividades que e...
Como mostrar a sobreposição de OSD em aplicativos e jogos Linux em tela cheia
Jogar jogos em tela cheia ou usar aplicativos em modo de tela cheia sem distração pode cortar você das informações relevantes do sistema visíveis em u...