English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Elasticsearch é um servidor de busca baseado no Apache Lucene. Desenvolvido por Shay Banon e2010Publicado há anos. Atualmente, é mantido pela Elasticsearch BV. Sua versão mais recente é7.0.0.
Elasticsearch é um motor de busca e análise de texto distribuído e de código-fonte aberto em tempo real. Pode ser acessado a partir da interface de serviço web RESTful e armazenar dados usando JSON (JavaScript Object Notation) sem schema. Construído em Java, o Elasticsearch pode rodar em várias plataformas. Ele permite que os usuários naveguem rapidamente grandes volumes de dados.
As características comuns do Elasticsearch são as seguintes-
Elasticsearch pode se expandir até PB de dados estruturados e não estruturados.
Elasticsearch pode substituir MongoDB e RavenDB como armazenamento de documentos.
Elasticsearch utiliza desnormalização para melhorar o desempenho da busca.
Elasticsearch é um dos motores de busca empresariais mais populares, atualmente usado por muitas grandes organizações, como a Wikipedia, The Guardian, StackOverflow e GitHub.
O Elasticsearch é um código-fonte aberto, disponível sob a versão da licença Apache.20 está usando.
Os conceitos-chave do Elasticsearch são os seguintes-
Refere-se a uma única instância de execução do Elasticsearch. Um único servidor físico e virtual pode abrigar múltiplos nós, dependendo da capacidade dos seus recursos físicos (como RAM, armazenamento e capacidade de processamento).
É uma coleção de um ou mais nós. O cluster fornece funcionalidades de índice e pesquisa coletivas em todos os nós.
É uma coleção de documentos de diferentes tipos e suas propriedades. O índice também usa o conceito de fragmentos para melhorar o desempenho. Por exemplo, um conjunto de documentos contém dados de aplicativos de rede social.
É uma coleção de campos definidos de uma forma específica em formato JSON. Cada documento pertence a um tipo e está dentro do índice. Cada documento está associado a um identificador único chamado UID.
Os índices são divididos horizontalmente em fragmentos. Isso significa que cada fragmento contém todas as propriedades dos documentos, mas o número de objetos JSON contidos é menor que o índice. A divisão horizontal torna o fragmento um nó independente, que pode ser armazenado em qualquer nó. O fragmento principal é a parte horizontal original do índice, e esses fragmentos principais são replicados nos fragmentos de cópia.
O Elasticsearch permite que os usuários criem cópias de índices e fragmentos. A cópia não apenas ajuda a aumentar a disponibilidade dos dados em caso de falha, mas também melhora o desempenho da pesquisa ao executar operações de pesquisa paralelas nessas cópias.
O Elasticsearch é desenvolvido em Java, o que o torna compatível em quase todas as plataformas.
O Elasticsearch é em tempo real, em outras palavras, o documento adicionado um segundo após o tempo pode ser pesquisado neste motor.
O Elasticsearch é distribuído, portanto, pode ser facilmente expandido e integrado em qualquer grande organização.
Criar cópias completas usando o conceito de gateway é muito simples, uma ideia que é muito comum no Elasticsearch.
Em comparação com o Apache Solr, é muito fácil lidar com multi-tenant no Elasticsearch.
O Elasticsearch usa objetos JSON como resposta, o que permite que se use uma grande variedade de linguagens de programação para chamar o servidor Elasticsearch.
Além de não suportar tipos de documentos de renderização de texto, o Elasticsearch suporta quase todos os tipos de documentos.
No Elasticsearch oferece suporte multilíngue para o processamento de solicitações e respostas de dados (disponível apenas em JSON), ao contrário do Apache Solr, que pode ser CSV, XML e JSON.
Às vezes, o Elasticsearch pode apresentar problemas de brain split.
No Elasticsearch, o índice é semelhante à tabela em um RDBMS (Sistema de Gestão de Banco de Dados Relacional). Cada tabela é uma coleção de linhas, assim como cada índice é uma coleção de documentos no Elasticsearch.
A tabela a seguir realiza uma comparação direta desses termos-
Elasticsearch | Sistema de Gestão de Banco de Dados Relacional (RDBMS) |
---|---|
Cluster | Banco de Dados |
Fragmento | Fragmento |
Índice | Tabela |
Campo | Coluna |
Documento | Linha |