Parte 1: Configurando um único nó
Hoje, armazenar eletronicamente seus documentos ou dados em um dispositivo de armazenamento é rápido e fácil, é comparativamente barato também. Em uso é uma referência de nome de arquivo que visa descrever sobre o que é 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 bastão USB, disco rígido interno ou externo, armazenamento de rede (NAS), armazenamento em nuvem ou base de GPU/flash, como em um NVIDIA V100 [10].
Por outro lado, o processo reverso, encontrar os documentos certos em uma coleção de documentos, é bastante complexo. Requer principalmente detectar o formato do arquivo sem falha, indexar o documento e extrair os principais conceitos (classificação de documentos). É aqui que a estrutura do Apache Solr entra. Ele oferece uma interface prática para fazer as etapas mencionadas - criando um índice de documentos, aceitando consultas de pesquisa, fazendo a pesquisa real e retornando um resultado de pesquisa. Assim, o Apache Solr 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ó, documentos de índice, fazer uma pesquisa e recuperar o resultado.
Os artigos de acompanhamento se baseiam nessa e, neles, discutimos outros casos de uso mais específicos, como integrar um PostgreSQL DBMS 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 com base no poderoso servidor de índice de pesquisa do Lucene [2]. Escrito em Java, é mantido sob o guarda -chuva da Apache Software Foundation (ASF) [6]. Está disponível gratuitamente sob a licença Apache 2.
O tópico “Localizar documentos e dados novamente” desempenha um papel muito importante no mundo do software, e muitos desenvolvedores lidam com isso intensamente. O site AwesomeoPensource [4] lista mais de 150 projetos de fonte aberta do mecanismo de pesquisa. No início de 2021, o Elasticsearch [8] e o Apache Solr/Lucene são os dois cães superiores quando se trata de procurar conjuntos de dados maiores. Desenvolvimento do seu mecanismo de pesquisa requer muito conhecimento, Frank faz isso com a Biblioteca Advanced Search [3], com sede 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ê. Aguarde 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 a longo prazo.
Como ambiente base deste artigo, usamos o Debian GNU/Linux 11, que é o próximo lançamento do Debian (no início de 2021) e espera-se disponível em meados de 2021. Para este tutorial, esperamos que você já o tenha instalado, como o sistema nativo, em uma máquina virtual como o VirtualBox ou um contêiner da AWS.
Além dos componentes básicos, você precisa dos seguintes pacotes de software para serem instalados no sistema:
Esses pacotes são componentes padrão do Debian GNU/Linux. Se ainda não estiver instalado, você pode pós-instalá-los de uma só vez como usuário com direitos administrativos, por exemplo, root ou via sudo, mostrado o seguinte:
# instalação apt-get Curl default-java libcoMmons-cli-java libxerces2-java lbtika-java
Tendo preparado o meio ambiente, a segunda etapa é a instalação do Apache Solr. A partir de agora, o Apache Solr não está disponível como um pacote de Debian regular. Portanto, é necessário recuperar o Apache Solr 8.8 Na 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
O Switch -o encurta -o -output -Document e faz com que o WGET mantenha o alcatrão 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 alcatrão. Como resultado, você encontrará dois subdiretos - /opt /solr e /opt /solr -8.8.0, enquanto que /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, é o seguinte:
# /opt /solr-8.8.0/bin/install_solr_service.sh
Isso resulta na criação do Usuário Linux Solr 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 você estiver descontente com eles, poderá modificá -los durante a instalação ou até mesmo latores, desde o script de instalação aceita interruptores 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:
Com mais detalhes, você pode ler sobre esses diretórios na documentação do Apache Solr [12].
Gerenciando o Apache Solr:
Apache Solr é executado como um serviço em segundo plano. Você pode iniciá -lo de duas maneiras, usando o SystemCTL (primeira linha) como 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
Interromper o Apache Solr é feito da mesma forma:
# SystemCtl Stop Solr
$ SOLR/BIN/SOLR STOP
Da mesma maneira é para reiniciar o serviço Apache Solr:
# SystemCtl Reiniciar Solr
$ solr/bin/solr reiniciar
Além disso, o status do processo Apache Solr pode ser exibido da seguinte forma:
# status systemctl solr
$ SOLR/BIN/SOLR Status
A saída lista o arquivo de serviço que foi iniciado, tanto o registro de registro correspondente quanto as mensagens de log. A figura abaixo mostra que o serviço Apache Solr foi iniciado na porta 8983 com o processo 632. O processo está funcionando com sucesso por 38 minutos.
Para ver se o processo Apache Solr está ativo, você também pode verificar usando o comando PS em combinação com o grep. Isso limita a saída do PS a todos os processos Apache Solr que estão atualmente ativos.
# ps ax | Grep -Solr -cor
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 da memória (512m) para ouvir em 8983 para consultas, 7983 para solicitações de parada e tipo de conexão (HTTP).
Adicionando usuários:
Os processos Apache Solr são executados com um usuário específico chamado Solr. Este usuário é útil para gerenciar processos Solr, fazer upload de dados e enviar solicitações. Após a configuração, o usuário Solr não possui uma senha e deve ter um para fazer login para prosseguir. Defina uma senha para o usuário solr como o usuário root, é mostrado o seguinte:
# passwd solr
Administração de Solr:
Gerenciar o Apache Solr é feito usando o painel Solr. Isso é acessível via navegador da web de 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 do painel mostra mais detalhes sobre o processo Apache Solr, bem como o uso atual de carga e memória.
Saiba que o conteúdo do painel muda dependendo do número de núcleos de Solr e dos documentos que foram indexados. Alterações afetam os itens do menu e as informações correspondentes que são visíveis à direita.
Entendendo como os mecanismos de pesquisa funcionam:
Simplesmente falando, os mecanismos de pesquisa analisam documentos, categorizam -os e permitem fazer uma pesquisa com base em sua categorização. Basicamente, o processo consiste em três estágios, que são denominados rastreando, indexando e classificando [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 aranhas ou rastreadores, daí o termo rastejando para passar pelos documentos disponíveis.
O segundo estágio é chamado indexação. O conteúdo anteriormente coletado é pesquisado 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).
O terceiro estágio é chamado ranking e descreve o processo de classificar os resultados da pesquisa de acordo com sua relevância com uma consulta de pesquisa. É comum exibir os resultados em ordem descendente para que o resultado que tenha a maior relevância para a consulta do pesquisador vem primeiro.
Apache Solr funciona de maneira semelhante ao processo de três estágios descrito anteriormente. Como o popular mecanismo de pesquisa Google, o Apache Solr usa uma sequência de coleta, armazenamento e indexação de documentos de diferentes fontes e os disponibiliza/pesquisável em tempo real em tempo real.
O Apache Solr usa maneiras diferentes de indexar documentos, incluindo o seguinte [14]:
Um manipulador de consulta é usado no Apache Solr quando uma solicitação de pesquisa é enviada. O Handler de consulta analisa a consulta fornecida com base no mesmo conceito do manipulador de índices para corresponder à consulta e aos documentos anteriormente indexados. As correspondências são classificadas de acordo com sua adequação ou relevância. Um breve exemplo de consulta é demonstrado abaixo.
Carregando documentos:
Por uma questão de simplicidade, 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 usuário solr. A etapa 1 é a criação de um núcleo com o nome TechProducts (para vários itens de tecnologia).
$ SOLR/BIN/SOLR CREATE -C TECHPRODUS
Está tudo bem se você vir a mensagem “Criou New Core 'TechProducts'". A etapa 2 está adicionando dados (dados XML de Exempledocs) aos principais produtos tecnológicos criados anteriormente. Em uso está o post da ferramenta que é parametrizado por -c (nome do núcleo) e os documentos a serem carregados.
$ solr/bin/post -C TechProducts Solr/exemplo/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 no lado esquerdo, e o número de documentos correspondentes alterados 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 TechProduts
Dados de consulta:
Apache Solr oferece duas interfaces para consultar dados: através do painel baseado na Web e linha de comando. Vamos explicar os dois métodos abaixo.
O envio de consultas via painel Solr é feito da seguinte maneira:
A linha de comando aceita a mesma consulta que no painel. A diferença é que você deve saber o nome dos campos de consulta. Para enviar a mesma consulta como acima, você deve executar o seguinte comando em um terminal:
$ CURL
http: // localhost: 8983/solr/techproducts/consulta?Q = ”Manu”: ”Belkin
A saída está em formato JSON, como mostrado abaixo. O resultado consiste em um cabeçalho de resposta e na 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 é configurada e você aprendeu a fazer upload e consultar documentos.
A próxima etapa abrangerá como refinar a consulta, formular consultas mais complexas e entender os diferentes formulários da Web fornecidos pela página de consulta Apache Solr. Além disso, discutiremos como pós-processo o resultado da pesquisa usando diferentes formatos de saída, como XML, CSV e JSON.
Sobre os autores:
Jacqui Kabeta é um ambientalista, pesquisador ávido, treinador e mentor. Em vários países africanos, ela trabalhou nos ambientes de TI e ONGs.
Frank Hofmann é desenvolvedor, treinador 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 no DPMB.org