8 Pesquisa poderosa auto-hospedada 🔍 Software de mecanismo para o seu produto

Parece assustador, mas adicionar uma função de pesquisa poderosa ao seu aplicativo não é complexo nem demorado. Aqui estão algumas recomendações sólidas!

Embora muitas tecnologias tenham impressionado nas últimas 2-3 décadas, uma pesquisa está entre as poucas que se tornaram parte integrante de nossas vidas. Está em toda parte — sites de comércio eletrônico, blogs, bases de conhecimento e muito mais — não porque uma caixa de pesquisa e um ícone pareçam legais, mas porque fazem algo que é desesperadamente necessário.

Se você é uma empresa procurando uma boa solução de pesquisa ou está cansado da sua existente, o que você faz?

Felizmente, você não precisa pagar taxas de licenciamento ridículas, nem precisa manter uma equipe de 20 desenvolvedores e administradores de sistema. Hoje tenho algumas recomendações de mecanismos de pesquisa que podem ser instaladas e integradas rapidamente, especialmente por pequenas empresas com equipes de desenvolvedores de tamanho 1-2.

MeiliSearch

Um dos melhores e mais valiosos mecanismos de pesquisa que você encontrará é o MeiliSearch.

Então, o que me faz listar o MeiliSearch entre minhas principais recomendações?

Aqui vai.

Código aberto

Todo o código-fonte que alimenta o MeiliSearch está disponível gratuitamente no GitHub. Isso significa que os próprios desenvolvedores podem examinar qualquer parte do código. Em troca, as empresas podem ter certeza da qualidade e da intenção (sem backdoors ou scanners no programa, por exemplo). E, claro, desenvolvedores experientes podem ajudar a melhorar ainda mais a tecnologia.

Ótima experiência do usuário

MeiliSearch não tem regras complexas (como “a – b” significa a mas não b). Basta digitar sua pesquisa naturalmente e os resultados começarão a aparecer com fluidez. O mecanismo é altamente tolerante e adaptável, fornecendo resultados precisos mesmo quando são usados ​​erros de digitação ou sinônimos. Ele também suporta vários idiomas.

Ótimo DevEx

Os desenvolvedores vão adorar o MeiliSearch! Não é apenas personalizável e escalável, mas também funciona como uma API REST! A documentação também é excelente e completa. Embora fazer chamadas HTTP seja trivial em qualquer linguagem, exemplos de cinco linguagens (JavaScript, Ruby, Python, Golang e PHP) são fornecidos para aqueles que estão com pressa.

As soluções de pesquisa simples devem ser simples de usar e configurar. Como tal, o MeiliSearch verifica todas as caixas! Quando estiver satisfeito em continuar, comece na DigitalOcean com um clique.

Sol

O Solr, parte do Projeto Apache, existe há alguns anos. Ele é baseado na conhecida e altamente confiável biblioteca Lucene, que também alimenta a popular solução de pesquisa chamada ElasticSearch. Tudo isso significa que o Solr está entre as soluções de pesquisa mais poderosas, escaláveis, compatíveis com os padrões, ricas em recursos e confiáveis.

É usado por gigantes como Disney, eBay, Netflix, Zappos e BestBuy. No entanto, isso não significa que você não pode executar uma instalação menor e mais simples (digamos, máquina única, sem dimensionamento, sem failover – bem, às vezes tudo bem) e fazer uso dessa potência chamada Solr.

Então, por que usar o Solr?

Aqui estão alguns excelentes motivos.

Preciso e poderoso

O Solr está entre os sistemas de busca mais precisos, capazes e poderosos do mundo. Além disso, é de código aberto, o que explica por que grandes nomes (como mencionado anteriormente) foram direto para ele. Sua capacidade de digerir documentos e responder a consultas de pesquisa é inigualável.

Instalação e manutenção simples

Instalar o Solr é tão simples quanto descompactar e executar o programa. Para sistemas simples de máquina única, nenhuma manutenção complicada é necessária; fique de olho no uso de RAM, pois as soluções de pesquisa em geral e as tecnologias baseadas em Java em particular podem consumir bastante RAM (porque elas mantêm ou tentam manter tudo na RAM para fornecer leituras/gravações rápidas).

Painel de administração

O Solr vem com um painel de administração que permite monitoramento e configuração visual. Com uma quantidade trivial de treinamento, mesmo não desenvolvedores podem aprender a ler os gráficos principais. Poucas soluções de pesquisa nesta lista vêm com funcionalidades como esta.

Fonte da imagem: Site oficial

Guiado por API, compatível com padrões

O Solr fornece uma interface de resultados em uma API que pode lidar com vários formatos — JSON, CSV, XML e binário. Ele produz dados de monitoramento de acordo com o padrão JMX, um grande benefício para desenvolvedores Java.

  Como personalizar a tela inicial do seu iPhone com widgets e ícones

Há muito mais a ser dito em favor do Solr, mas tentar cobrir tudo nos levará ao fim dos tempos. 😂 Basta dizer que o Solr é uma solução de primeira linha e você nunca pode errar com ela, não importa com que tipo de dados você trabalha.

Elasticsearch

O Elasticsearch foi, e provavelmente ainda é, um pioneiro na pesquisa de texto de formato livre. Na verdade, ainda hoje, se você pedir a um programador ou administrador de sistema uma recomendação sobre mecanismos de pesquisa, o Elasticsearch provavelmente será o único nome que eles encontrarão. Claro, hoje em dia, um pedaço considerável recomendará algo como Algolia também, mas já abordamos como isso acontece. 🤪

Não se deixe enganar pelo botão “Iniciar teste gratuito” no gráfico acima. Embora a tecnologia principal do Elasticsearch seja de código aberto e gratuita, a empresa está tentando monetizar seus esforços e direcionar as empresas. Portanto, o que você vê aqui é, na verdade, o teste do serviço de nuvem, facilitando o gerenciamento do Elasticsearch, especialmente quando há clusters envolvidos.

Uff, tantas teias para desembaraçar. Vamos recapitular: o Elasticsearch é de código aberto e gratuito, e qualquer pessoa pode configurá-lo facilmente e usá-lo sem limites.

E agora, como esperado, vamos mergulhar nos motivos para escolher o Elasticsearch:

  • Mecanismo de pesquisa maduro e testado em batalha. Isso significa que é muito mais provável que você encontre soluções se estiver preso a bugs “estranhos”.
  • Foco de primeira classe em clustering, escalabilidade e gravações assíncronas.
  • Acessível por meio de uma API REST simples (que é o que todo mundo acabou copiando).
  • Orientado a documentos, mas suporta esquema, se necessário.
  • Resultados incrivelmente rápidos e precisos. Velocidade de pesquisa configurável.
  • Documentação estelar, tanto na quantidade quanto na utilidade.
  • Uma plataforma de nuvem completa de pesquisa e análise (a pilha ELK), se você quiser pagar pela conveniência.

A única escolha que eu teria contra o Elasticsearch é o enorme consumo de RAM. Quero dizer, como consultores, é difícil convencer os clientes a investir em um servidor que custa US$ 20/mês, o que infelizmente não chega nem perto do que o Elasticsearch exige.

Se você está curioso para aprender o Elasticsearch, confira este curso da Udemy.

Tipografia

O Typesense é um mecanismo de pesquisa leve, direto e poderoso. Aqueles que procuram utilidade e simplicidade devem definitivamente experimentar este.

Uma das melhores coisas do Typesense é que você pode experimentá-lo diretamente no site deles. Isso pode economizar frustração e tempo nos casos em que você configura tudo e experimenta a API. . . apenas para descobrir que um ou mais recursos não funcionam da maneira que você gostaria.

Isso não quer dizer que pode haver bugs no mecanismo; é só que a opinião do mecanismo sobre algo pode não ser sua preferência, ou pode estar em conflito direto com o domínio do seu negócio. Erros de digitação, símbolos especiais, sinônimos e muito mais . . . você pode verificar os resultados que o mecanismo lança diretamente na página inicial (eles estão usando um banco de dados de livros para isso).

Como você pode ver, esta seção está logo abaixo da mais alta. Na caixa de pesquisa, inseri a consulta “tra” e, abaixo, vejo os resultados correspondentes do banco de dados de livros (assim como os metadados — resultados totais, página atual etc.).

O Typesense tem muito a oferecer quando se trata de um mecanismo de pesquisa de sua escolha:

  • A tecnologia por trás dele é totalmente open source e acolhedora.
  • Fácil de configurar uma configuração de HA (Alta Disponibilidade), caso você precise de uma.
  • Tolerante quando se trata de erros de digitação e outros ruídos nas consultas de pesquisa.
  • Um sistema de filtragem avançado para quem precisa de um controle refinado dos resultados da pesquisa.
  • API REST simples, embora seus documentos façam você trabalhar muito para encontrá-la!
  • Clientes (SDKs) estão disponíveis para algumas das principais linguagens (JavaScript, Python, Ruby e PHP).

Por fim, se você achar cansativa a ideia de configurar novos servidores, o Typesense também tem uma oferta de nuvem onde o provisionamento leva um único clique. O faturamento é por hora e as leituras e gravações são ilimitadas. Francamente, direi que esta é a melhor opção para a maioria das empresas, desde que tenham definido os preços com antecedência e tenham certeza de que é um ganho líquido.

Em suma, o Typesense faz muito sentido (sem trocadilhos!) se você precisar de algo pequeno, liso, preciso e um verdadeiro cavalo de batalha.

  5 melhores ferramentas para planejamento de capacidade de rede (revisão)

sônica

O Sonic se orgulha de ser uma alternativa do ElasticSaerch que roda em “alguns MBs de RAM”.

Como isso é possível?

Bem, a Java Virtual Machine (JVM) é conhecida por ser faminta de RAM (geralmente, apenas iniciar a JVM consome cerca de 1 GB de RAM); não é surpresa, então, que algo codificado na linguagem Rust (que fornece controle total e segurança de memória para desenvolvedores) possa ser executado com a mesma rapidez e usar apenas alguns MBs de RAM.

Relaxem, todos! Esse é apenas o mascote do projeto.

Até o momento, existem algumas empresas listadas entre seus usuários, embora eu tenha certeza de que existem mais algumas que não se incomodaram em adicionar seus nomes. Não me lembro como ou o período exato de tempo, mas encontrei Sonic antes; naquela época, enquanto eu estava feliz em ver uma alternativa de pouca memória, pensei que precisaria de tempo para estabilizar e resolver bugs ocultos. Bem, parece que eles chegaram mais ou menos; quão popular Sonic se torna é algo que só o tempo dirá.

Ok, deixando de lado as ruminações, por que você deveria considerar usar o Sonic para sua organização/projeto?

Aqui estão alguns motivos:

  • Consumo de memória extremamente baixo, no que diz respeito aos mecanismos de pesquisa.
  • As bibliotecas estão disponíveis para todas as principais linguagens de programação. Node, PHP e Rust são o que os próprios autores lançaram, enquanto outros foram criados pela comunidade (alegre-se, porque exóticos como Elixir e Nim também são cobertos!).
  • Vários idiomas são suportados (era demais para contar, mas acho que no momento da escrita, 40-50 idiomas são suportados).
  • Uma surpresa! Você pode até usar novos idiomas, e o mecanismo funcionará (😂😂), embora você perca algumas funções avançadas, como palavras de parada.
  • Motor muito rápido. Se você verificar a página do GitHub, verá que os tempos de ingestão e pesquisa foram em microssegundos em vários casos! Claro, este foi um teste de máquina única, pois a latência da rede nunca permitirá que os números sejam tão baixos.

Se você quiser ver esse mecanismo em ação, acesse este link (uma de suas empresas usuárias) e brinque com a caixa de pesquisa que você vê lá:

Existem certas limitações no Sonic como mecanismo de pesquisa. Os desenvolvedores os destacaram e discutiram abertamente em sua página do GitHub. Meu conselho seria examinar de perto esta lista e estabelecer que seus casos de uso não são comuns com o domínio deles. Dito isto, tudo tem limitações; é só que eles são mantidos escondidos, e por isso não percebemos até que seja tarde demais. Portanto, considero o Sonic uma ótima opção para um mecanismo de busca.

Pesquisa TNT

Agora temos uma entrada fascinante nesta lista. A primeira coisa interessante é que esse mecanismo de pesquisa completo e pronto para produção foi escrito em PHP!

Sim, de todas as linguagens possíveis, PHP. E digo isso não porque odeio PHP, mas porque é um processo de curta duração por design.

A segunda coisa interessante é a sua licença, pelo menos no momento da escrita. Na verdade, a licença em si é MIT, então não há problemas lá, mas os autores classificam este software como PS4Ware; se você usa o TNTSearch em produção, deve enviar um jogo de PS4 para eles! 😂😂 Agora, não é obrigatório, como o “deveria” indica, mas é engraçado demais. Eu também espero que eles atualizem para uma licença PS5, embora seja muito cedo agora.

De qualquer forma, vindo de uma forte experiência em PHP + Laravel, eu aprecio muito os esforços desses caras. O site deles não diz muito, mas parece indicar que eles são consultores, então eu recomendo que você entre em contato com eles se tiver projetos!

Agora, existem boas razões para usar o TNTSearch em seus projetos?

Sim, existem:

  • Codificado em PHP, para PHP, por PHP. O ecossistema PHP precisa de soluções mais dedicadas e de alta qualidade como esta.
  • Recursos importantes, como pesquisa difusa, pesquisa geográfica e classificação de texto.
  • Fácil de alterar o índice de pesquisa, o que é uma grande flexibilidade que falta em muitas soluções.
  • Stemming, classificação BM25 e tokenização personalizada garantem alta precisão.
  • Fácil implantação — como qualquer outro pacote Composer!

Você pode conferir o desempenho do motor aqui e ver por si mesmo o quão rápido e preciso ele é. Eu enfatizaria o aspecto PHP novamente: se você está mantendo um projeto PHP, você quer permanecer dentro das paredes do PHP o máximo possível (por que? pense nos custos de retreinamento). E para esses casos, o TNTSearch traz uma proposta de valor difícil de recusar!

  Photoshopado ou não? Três maneiras de saber se uma imagem é real ou falsa

Vespa

Vespa é uma oferta ampla e pesada. Como algumas outras entradas nesta lista, é muito grande para ser capturada em poucas palavras. Mas eu devo tentar, então eu vou. 🙂 Vespa é um mecanismo de pesquisa, com certeza, mas usá-lo como um mecanismo de pesquisa comum estará desperdiçando seu potencial.

A Vespa foi criada para lidar com quantidades infinitas de dados (Big Data) e fornecer recursos orientados por Machine Learning e personalização sem fim.

A Vespa se posiciona como concorrente do Elasticsearch e dos bancos de dados tradicionais e fornece uma comparação decente sobre o que usar e quando.

Como você pode ver, quanto mais próximo você deseja chegar das operações orientadas ao aprendizado de máquina, mais sentido a Vespa faz. Como um mecanismo de pesquisa puro para uma empresa de pequeno e médio porte, não acho que tenha vantagens sobre outras opções.

Agora, considerando que você está gerando grandes quantidades de dados continuamente e deseja melhorar a tomada de decisões por meio de IA/ML (uma descrição que se encaixa em muitas empresas de SaaS hoje), veja por que a Vespa faz muito sentido:

  • Código aberto: sem licenças estranhas e sem contratos de armadilhas. E nada a pagar em cima disso, embora eu sempre ressalte que as empresas pagam uma quantia regular para os projetos que mais usam (até $ 50/mês vai ajudá-los muito).
  • Tempo real: Vespa é verdadeiramente em tempo real. Ele não pode apenas digerir, processar e pesquisar os dados à medida que eles chegam; até mesmo sua configuração pode ser modificada em tempo real.
  • Escalável e tolerante: Vespa é trivial para escalar. Também responde muito bem ao desaparecimento repentino de nós, proporcionando alta confiabilidade.
  • Classificação e recomendações: As recomendações de pesquisa, classificação e Vespa podem ser combinadas com consultas estruturadas para fornecer resultados realmente precisos.
  • AI/ML indolor: a Vespa vem com modelos de ML pré-treinados e de alta qualidade. Você não precisa contratar 20 cientistas de dados para limpar e usar seus dados.
  • Plug-ins personalizados: há um conjunto completo de APIs que ajudam os desenvolvedores a criar plug-ins Java personalizados, caso precisem alterar o funcionamento do mecanismo.

A Vespa é enorme, sem dúvida, então é claro para as equipes que estão um pouco além do nível inicial – seja tamanho da equipe, proeza tecnológica, orçamentos de infraestrutura, volumes diários de dados ou qualquer outra coisa. Para este segmento, a Vespa fará um home run e é altamente recomendada.

Âmbar

Para algumas empresas, os dados de pesquisa ainda não são transformados e armazenados perfeitamente como documentos JSON; em vez disso, é uma bagunça no verdadeiro sentido da palavra – uma coleção caótica de todos os tipos de documentos como Word, PDF, arquivos HTML, etc. Se você é um deles e pensou que não há esperança para você, bem, diga Olá para Ambar!

A melhor coisa sobre o Ambar é o grande tipo de arquivos com os quais ele pode trabalhar:

  • Formatos de arquivo do MS Office (.docx, .xlsx, etc.), incluindo PowerPoint, Visio e Publisher!
  • Formatos de arquivo OpenOffice
  • Documentos PDF com OCR automático aplicado para extrair informações.
  • Imagens
  • Formatos de arquivo de e-mail, como PST (olá, usuários do Outlook!)
  • Mensagens de e-mail com anexos

As guloseimas não terminam aqui também. O Ambar é capaz de trabalhar com arquivos grandes (mais de 30 MB), arquivos ZIP e multithreading para utilização total da CPU e resultados mais rápidos. Então, se você tem anos de documentos em algum disco em um servidor esquecido, é hora de trazê-los de volta e alimentar tudo no Ambar!

Conclusão

A pesquisa 🔎 é poderosa, a pesquisa é mágica e a pesquisa está em toda parte!

Pode até ser magia negra, mas hoje não há razão para que todos (com alguma ajuda do desenvolvedor, é claro) não possam colher seus benefícios. De empresas a indivíduos e governos, os mecanismos de pesquisa nesta lista fornecem uma oferta de esforço quase zero com benefícios e impacto exponenciais.

Vá em frente e obtenha um servidor em nuvem e instale o software de pesquisa listado acima que você gosta de experimentar.