Introdução ao Apache Solr. Parte 3 Conectando -se ao PostgreSQL

Introdução ao Apache Solr. Parte 3 Conectando -se ao PostgreSQL
Apache Solr [1] é uma estrutura de mecanismo de pesquisa escrita em Java e baseada na Biblioteca de Pesquisa Lucene [6]. Nos dois artigos anteriores, configuramos o Apache Solr no Debian GNU/Linux 11, que será lançado em breve, iniciamos um único núcleo de dados, enviamos dados de exemplo, demonstramos como consultar dados de saída de diferentes maneiras e pós-processamento isto.

Este é um artigo de acompanhamento para os dois anteriores [2,3]. Até agora, carregamos dados indexados no armazenamento do Apache Solr e consultamos dados sobre isso. Agora, você aprenderá como conectar o sistema de gerenciamento de banco de dados relacional PostGresql [4] ao Apache Solr e fazer uma pesquisa nele usando os recursos do Solr. Isso torna necessário fazer várias etapas descritas abaixo com mais detalhes - configurando o PostGresql, preparando uma estrutura de dados em um banco de dados PostgreSQL e conectando o PostGresql ao Apache Solr e fazendo nossa pesquisa.

Etapa 1: Configurando PostgreSQL

Sobre PostgreSQL - uma informação curta

PostgreSQL é um engenhoso sistema de gerenciamento de banco de dados de objetos relacionados a objetos. Está disponível para uso e passou por um desenvolvimento ativo há mais de 30 anos. Ele se origina na Universidade da Califórnia, onde é visto como o sucessor de Ingres [7].

Desde o início, está disponível em código aberto (GPL), gratuito para usar, modificar e distribuir. É amplamente utilizado e muito popular na indústria. O PostgreSQL foi projetado inicialmente para ser executado apenas em sistemas UNIX/Linux e foi projetado posteriormente para ser executado em outros sistemas como Microsoft Windows, Solaris e BSD. O desenvolvimento atual do PostgreSQL está sendo feito em todo o mundo por vários voluntários.

Configuração do PostgreSQL

Se ainda não fizeram, instale o servidor e o cliente PostgreSQL localmente, por exemplo, no Debian GNU/Linux, conforme descrito abaixo, usando o APT. Dois artigos estão lidando com o artigo de PostGresql - Yunis Said [5] discute a configuração no Ubuntu. Ainda assim, ele apenas arranha a superfície enquanto meu artigo anterior se concentra na combinação de PostgreSQL com a extensão GIS PostGis [6]. A descrição aqui resume todas as etapas necessárias para esta configuração específica.

# APT Instale PostGresql-13 PostGresql-Client-13

Em seguida, verifique se o PostgreSQL está sendo executado com a ajuda do comando pg_isready. Este é um utilitário que faz parte do pacote PostgreSQL.

# pg_isready
/var/run/postgreSQL: 5432 - As conexões são aceitas

A saída acima mostra que o PostgreSQL está pronto e aguardando conexões de entrada na porta 5432. A menos que seja definido em contrário, esta é a configuração padrão. A próxima etapa é definir a senha para o usuário do UNIX Postgres:

# passwd postgres

Lembre -se de que o PostgreSQL possui seu próprio banco de dados de usuário, enquanto o usuário administrativo PostGresql Postgres ainda não possui uma senha. A etapa anterior também deve ser feita para o usuário do PostgreSQL Postgres:

# su - postgres
$ psql -C "Alter User Postgres com senha 'Senha';"

Por simplicidade, a senha escolhida é apenas uma senha e deve ser substituída por uma frase de senha mais segura em sistemas que não sejam testes. O comando acima alterará a tabela de usuários internos do PostgreSQL. Esteja ciente das diferentes aspas - a senha em citações únicas e a consulta SQL em citações duplas para impedir que o intérprete da concha avalia o comando da maneira errada. Além disso, adicione um semicolon após a consulta SQL antes das citações duplas no final do comando.

Em seguida, por razões administrativas, conecte -se ao PostgreSQL como User Postgres com a senha criada anteriormente. O comando é chamado PSQL:

$ psql

Conectando -se do Apache Solr ao banco de dados PostGresql é feito como o usuário solr. Então, vamos adicionar o usuário do PostGresql Solr e definir uma senha correspondente Solr para ele de uma só vez:

$ Crie o usuário solr com 'solr' passwd;

Por simplicidade, a senha escolhida é apenas Solr e deve ser substituída por uma frase de senha mais segura em sistemas que estão em produção.

Etapa 2: Preparando uma estrutura de dados

Para armazenar e recuperar dados, é necessário um banco de dados correspondente. O comando abaixo cria um banco de dados de carros que pertencem ao usuário solr e será usado posteriormente.

$ Crie carros de banco de dados com proprietário = solr;

Em seguida, conecte -se aos carros de banco de dados recém -criados como usuário solr. A opção -d (opção curta para -dbname) define o nome do banco de dados e -u (opção curta para -username) o nome do usuário do PostGresql.

$ psql -d cars -u solr

Um banco de dados vazio não é útil, mas tabelas estruturadas com conteúdo. Crie a estrutura dos carros da tabela da seguinte forma:

$ Crie carros de mesa (
eu não fiz,
Faça Varchar (100),
Modelo Varchar (100),
Descrição Varchar (100),
Color Varchar (50),
Preço int
);

Os carros de mesa contêm seis campos de dados - ID (número inteiro), Make (uma sequência de comprimento 100), modelo (uma sequência de comprimento 100), descrição (uma sequência de comprimento 100), cor (uma sequência de comprimento 50) e Preço (número inteiro). Para ter alguns dados de amostra, adicione os seguintes valores aos carros da tabela como instruções SQL:

$ Inserir em carros (id, make, modelo, descrição, cor, preço)
Valores (1, 'BMW', 'X5', 'Cool Car', 'Gray', 45000);
$ Inserir em carros (id, make, modelo, descrição, cor, preço)
Valores (2, 'Audi', 'Quattro', 'Race Car', 'White', 30000);

O resultado são duas entradas representando um BMW x5 cinza que custa US $ 45000, descrito como um carro frio, e um carro de corrida branco Audi Quattro que custa US $ 30000.

Em seguida, saia do console postgreSQL usando \ q, ou saia.

$ \ q

Etapa 3: Conectando PostgreSQL com Apache Solr

A conexão de PostgreSQL e Apache Solr é baseada em duas peças de software - um driver Java para PostgreSQL chamado Driver Java Database Connectivity (JDBC) e uma extensão da configuração do servidor Solr. O driver JDBC adiciona uma interface Java ao PostgreSQL, e a entrada adicional na configuração do Solr informa ao Solr como se conectar ao PostgreSQL usando o driver JDBC.

A adição do driver JDBC é feita como raiz do usuário da seguinte maneira e instala o driver JDBC no Repositório de Pacote Debian:

# apt-get install libpostgresql-jdbc-java

No lado Apache Solr, um nó correspondente também deve existir. Se ainda não estiver pronto, como o usuário do UNIX Solr, crie os carros do nó da seguinte forma:

$ bin/Solr Create -C Cars

Em seguida, estenda a configuração do Solr para o nó recém -criado. Adicione as linhas abaixo ao arquivo/var/solr/data/cars/conf/solrconfig.xml:

DB-Data-Config.xml

Além disso, crie um arquivo/var/solr/data/cars/conf/data-config.XML e armazenar o seguinte conteúdo nele:

As linhas acima correspondem às configurações anteriores e definem o driver JDBC, especifique a porta 5432 para se conectar ao PostgreSQL DBMS como o usuário solr com a senha correspondente e defina a consulta SQL a ser executada a partir do PostgreSQL. Por simplicidade, é uma declaração selecionada que agarra todo o conteúdo da tabela.

Em seguida, reinicie o servidor Solr para ativar suas alterações. Como o usuário root execute o seguinte comando:

# SystemCtl Reiniciar Solr

A última etapa é a importação dos dados, por exemplo, usando a interface da Web Solr. A caixa de seleção de nós escolhe os carros do nó, depois do menu do nó abaixo da entrada DataImport, seguido pela seleção de Full-Import do menu de comando direto para ele. Por fim, pressione o botão Execute. A figura abaixo mostra que o Solr indexou com sucesso os dados.

Etapa 4: Consultando dados do DBMS

O artigo anterior [3] lida com os dados de consulta em detalhes, recuperando o resultado e selecionando o formato de saída desejado - CSV, XML ou JSON. Consultar os dados é feito de maneira semelhante ao que você aprendeu antes, e nenhuma diferença é visível para o usuário. Solr faz todo o trabalho nos bastidores e se comunica com os DBMs PostgreSQL conectados conforme definido no núcleo ou cluster Solr selecionado.

O uso do Solr não muda e as consultas podem ser submetidas pela interface do administrador do Solr ou usando o CURL ou WGET na linha de comando. Você envia uma solicitação GET com um URL específico para o servidor Solr (consulta, atualização ou exclusão). Solr processa a solicitação usando o DBMS como uma unidade de armazenamento e retorna o resultado da solicitação. Em seguida, pós-processo da resposta localmente.

O exemplo abaixo mostra a saída da consulta “/selecione?Q =*. *”No formato JSON na interface do Solr Admin. Os dados são recuperados dos carros de banco de dados que criamos anteriormente.

Conclusão

Este artigo mostra como consultar um banco de dados PostGresql do Apache Solr e explica a configuração correspondente. Na próxima parte desta série, você aprenderá a combinar vários nós Solr em um cluster Solr.

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

Links e referências

  • [1] Apache Solr, https: // Lucene.apache.org/solr/
  • [2] Frank Hofmann e Jacqui Kabeta: Introdução ao Apache Solr. Parte 1, https: // linuxhint.COM/APACHE-SOLR-SETUP-A-Node/
  • [3] Frank Hofmann e Jacqui Kabeta: Introdução ao Apache Solr. Dados de consulta. Parte 2, http: // linuxhint.com
  • [4] PostGresql, https: // www.PostGresql.org/
  • [5] Younis disse: Como instalar e configurar o banco de dados PostgreSQL no Ubuntu 20.04, https: // linuxhint.com/install_postgresql_-ubuntu/
  • [6] Frank Hofmann: Configurando o PostgreSQL com o PostGIS no Debian GNU/Linux 10, https: // linuxhint.com/setup_postgis_debian_postgres/
  • [7] Ingres, Wikipedia, https: // pt.Wikipedia.org/wiki/ingres_ (banco de dados)