Elasticsearch: faça buscas em bancos de dados e sistemas de negócios

Visão geral

Introdução ao Elasticsearch

O Elasticsearch oferece uma variedade de técnicas de busca, a começar pelo BM25, o padrão do setor para busca textual. Ele também oferece busca semântica alimentada por modelos de AI, melhorando os resultados com base no contexto e na intenção.

Neste guia, você aprenderá a sincronizar dados de um banco de dados externo com o Elasticsearch e usar a busca semântica para buscar facilmente seus dados.


Integre seus dados

Crie um projeto do Elastic Cloud

Comece com uma avaliação de 14 dias. Depois de acessar cloud.elastic.co e criar uma conta, siga as etapas a seguir para executar seu primeiro projeto Elasticsearch Serverless.

Para começar, selecione Elasticsearch.

screenshot-01-which-type-project-like-to-create.png

Crie um projeto para uma finalidade geral. Dê a ele o nome de "Meu projeto" e clique em Criar projeto.

screenshot-02-confirm-project-settings.png

Seu projeto do Elasticsearch Serverless será criado agora. Em seguida, crie seu primeiro índice do Elasticsearch e nomeie-o como "meu-indice". Clique em Criar meu índice.

screenshot-03-get-started-elasticsearch.png

Em seguida, você pode adicionar fontes de dados de terceiros ao Elasticsearch. Neste exemplo, temos um banco de dados MongoDB com cerca de 150.000 títulos de videogame e as colunas "id," "nome," "descrição," e "data." Sincronizaremos esse banco de dados com o Elasticsearch e, como uma etapa extra, adicionaremos recursos de search semântica a ele.

Vamos criar um mapeamento de índice básico com os mesmos nomes de campo e o "description_semantic" extra que conterá nossos vetores para search semântica. Abra o Dev Tools e cole o seguinte comando para atualizar seus mapeamentos de índice:

screenshot-04-console.png

PUT meu-índice/_mapeamentos
{
"propriedades": {
"nome": {
"type": "text"
},
"descrição": {
"type": "text",
"copy_to": "description_semantic"
},
"descrição_semântica": {
"type": "semantic_text"
},
"data": {
"type": "date"
}
}
}


Buscando dados de um banco de dados existente

Você está pronto para se conectar a um banco de dados existente. Clique em Conectores e + Conector autogerenciado.

screenshot-05-connectors.png

Este guia usará um banco de dados MongoDB. Selecione MongoDB na lista tipo de conector.

screenshot-06-mongodb-d6b9-link-elasticsearch.png

Siga as instruções para implantar um conector self-hospedado usando o Docker. Você precisará criar um arquivo config.yml. Tenha em mente que a API key no conector e no Elasticsearch é a mesma. Por exemplo:

conectores:
-
connector_id: KPIDOZUBfX6AM3jXM_g7
service_type: mongodb
api_key: RGZMUU9KVUJmWDZBTTNqWFRQano6R3RRb01jR2kxRkNqWTA5eGtSa3NFZw==
elasticsearch:
host: https://my-project-cc67ad.es.us-east-1.aws.elastic.cloud:443
api_key: RGZMUU9KVUJmWDZBTTNqWFRQano6R3RRb01jR2kxRkNqWTA5eGtSa3NFZw==

Então, inicie o conector auto-hospedado usando:

docker run -v "./connectors-config:/config" --tty --rm docker.elastic.co/enterprise-search/elastic-connectors:8.17.0 /app/bin/elastic-ingestão -c /config/config.yml

Em seguida, adicione a configuração ao seu banco de dados MongoDB e clique em Próximo.

screenshot-07-mongodb-d6b9-configure.png

Selecione o índice para o qual os dados devem ser sincronizados — nesse caso, é o "meu-indice", o índice que criamos anteriormente. Clique em Sincronizar.

screenshot-08-mongodb-d6b9-connect-index.png

É isso! O conector percorrerá o banco de dados e sincronizará os documentos para "meu-indice." A página principal conectores mostrará o status atual.

screenshot-11-mongodb-d6b9-connectors.png

Os conectores também podem ser configurados para sincronizar periodicamente o banco de dados com o Elasticsearch. Para fazer isso, clique no conector, depois clique em Agendamento, selecione a cada hora e clique em Salvar. Agora, o conteúdo será sincronizado no início de cada hora, desde que o conector auto-hospedado esteja ativo e em execução.

screenshot-10-mongodb-d6b9-scheduling.png


Como trabalhar com o Elasticsearch

Consultando dados

Agora começa a parte divertida. Vá para Build > Dev Tools (a mesma seção que usamos para atualizar os mapeamentos de índice) e faça a seguinte consulta, que fará uma busca de texto completo nos campos "nome" e "descrição":

GET meu-índice/_search
{
"query": {
"multi_match": {
"query": "adventure game on a desert island",
"fields": [
"name",
"description"
]
}
}
}

Já que o índice agora tem um campo texto_semantico, você pode consultá-lo da seguinte forma:

GET meu-índice/_busca
{
"consulta": {
"semântica": {
"field": "description_semantic",
"query": "game about ghosts in medieval times"
}
}
}

Você acabou de aprender como sincronizar dados de um banco de dados externo com o Elasticsearch e adicionar busca semântica sobre ele!


Próximas etapas

Agradecemos o tempo dedicado a aprender como criar sua primeira consulta de busca com Python no Elastic Cloud. Ao iniciar sua jornada com a Elastic, entenda alguns componentes operacionais, de segurança e de dados que você deve gerenciar como usuário ao fazer a implantação no seu ambiente.

Tudo pronto para começar? Inicie um teste gratuito de 14 dias no Elastic Cloud ou experimente esses aprendizados práticos de 15 minutos no Search AI 101.

Iniciar avaliação gratuita