8 Potente motor de búsqueda autohospedado 🔍 Software para su producto

Parece desalentador, pero agregar una potente función de búsqueda a su aplicación no es complejo ni requiere mucho tiempo. ¡Aquí hay algunas recomendaciones sólidas!

Si bien muchas tecnologías han impresionado en las últimas 2 o 3 décadas, una búsqueda se encuentra entre las pocas que se han vuelto parte integral de nuestras vidas. Está en todas partes: sitios de comercio electrónico, blogs, bases de conocimiento y más, no porque un cuadro de búsqueda y un ícono se vean geniales, sino porque hace algo que se necesita desesperadamente.

Si tiene una empresa que busca una buena solución de búsqueda o está cansado de la que ya tiene, ¿qué hace?

Afortunadamente, no necesita pagar tarifas de licencia ridículas, ni necesita mantener un equipo de 20 desarrolladores y administradores de sistemas. Hoy tengo algunas recomendaciones de motores de búsqueda que se pueden instalar e integrar en poco tiempo, especialmente por pequeñas empresas con equipos de desarrolladores de tamaño 1-2.

MeiliBuscar

Uno de los mejores y más valiosos motores de búsqueda con los que te encontrarás es MeiliSearch.

Entonces, ¿qué me hace incluir a MeiliSearch entre mis principales recomendaciones?

Aquí va.

Fuente abierta

Todo el código fuente que alimenta a MeiliSearch está disponible abiertamente en GitHub. Eso significa que los desarrolladores pueden examinar cualquier parte del código por sí mismos. A cambio, las empresas pueden estar seguras de la calidad y la intención (sin puertas traseras ni escáneres en el programa, por ejemplo). Y, por supuesto, los desarrolladores expertos pueden ayudar a mejorar aún más la tecnología.

Gran experiencia de usuario

MeiliSearch no tiene reglas complejas (como “a – b” significa a pero no b). Simplemente escriba su búsqueda de forma natural y los resultados comenzarán a aparecer de forma fluida. El motor es muy tolerante y flexible, y ofrece resultados precisos incluso cuando se utilizan errores tipográficos o sinónimos. También es compatible con varios idiomas.

gran desarrollador

¡A los desarrolladores les encantará MeiliSearch! ¡No solo es personalizable y escalable, sino que interactúa como una API REST! La documentación también es excelente y completa. Si bien hacer llamadas HTTP es trivial en cualquier idioma, se brindan ejemplos de cinco idiomas (JavaScript, Ruby, Python, Golang y PHP) para aquellos que tienen mucha prisa.

Las soluciones de búsqueda simples deben ser fáciles de usar y configurar. ¡Como tal, MeiliSearch marca todas las casillas! Cuando esté feliz de continuar, comience en DigitalOcean con un solo clic.

Solr

Solr, parte del Proyecto Apache, existe desde hace algunos años. Se basa en la conocida y altamente confiable biblioteca Lucene, que también impulsa la popular solución de búsqueda llamada ElasticSearch. Todo este galimatías significa que Solr se encuentra entre las soluciones de búsqueda más poderosas, escalables, compatibles con los estándares, ricas en funciones y confiables.

Es utilizado por gigantes como Disney, eBay, Netflix, Zappos y BestBuy. Sin embargo, eso no significa que no pueda ejecutar una instalación más pequeña y simple (digamos, una sola máquina, sin escalado, sin conmutación por error; bueno, a veces está bien) y hacer uso de esta potencia llamada Solr.

Entonces, ¿por qué usar Solr?

Aquí hay algunas razones excelentes.

Preciso y poderoso

Solr se encuentra entre los sistemas de búsqueda más precisos, capaces y potentes del mundo. Además, es de código abierto, lo que explica por qué los grandes nombres (como se mencionó anteriormente) se han dirigido directamente a él. Su capacidad para digerir documentos y responder consultas de búsqueda es insuperable.

Instalación y mantenimiento sencillos

Instalar Solr es tan sencillo como descomprimir y ejecutar el programa. Para sistemas simples de una sola máquina, no se requiere un mantenimiento complicado; vigile el uso de RAM, ya que las soluciones de búsqueda en general y las tecnologías basadas en Java en particular pueden consumir bastante RAM (porque mantienen o intentan mantener todo en RAM para proporcionar lecturas/escrituras rápidas).

Panel de administrador

Solr viene con un panel de administración que permite el monitoreo y la configuración visual. Con una pequeña cantidad de entrenamiento, incluso los que no son desarrolladores pueden aprender a leer los gráficos clave. No muchas soluciones de búsqueda en esta lista vienen con una funcionalidad como esta.

Fuente de la imagen: sitio oficial

Impulsado por API, compatible con estándares

Solr proporciona una interfaz de resultados en una API que puede manejar múltiples formatos: JSON, CSV, XML y binario. Genera datos de monitoreo según el estándar JMX, una gran ayuda para los desarrolladores de Java.

Hay mucho más que decir a favor de Solr, pero tratar de abarcarlo todo nos llevará hasta el final de los tiempos. 😂 Baste decir que Solr es una solución de primer nivel, y nunca puede equivocarse con ella, sin importar con qué tipo de datos trabaje.

Elasticsearch

Elasticsearch fue, y podría decirse que sigue siendo, un pionero en la búsqueda de texto de formato libre. De hecho, incluso hoy en día, si le pide a un programador o administrador de sistemas una recomendación sobre los motores de búsqueda, es muy probable que Elasticsearch sea el único nombre que se le ocurra. Claro, en estos días, una parte considerable también recomendará algo como Algolia, pero ya hemos cubierto cómo funciona eso. 🤪

No se deje engañar por el botón «Iniciar prueba gratuita» en el gráfico anterior. Si bien la tecnología central de Elasticsearch en sí es de código abierto y gratuita, la empresa está tratando de monetizar sus esfuerzos y empresas objetivo. Por lo tanto, lo que ve aquí es en realidad la prueba de su servicio en la nube, lo que facilita la administración de Elasticsearch, especialmente cuando hay clústeres involucrados.

Uff, tantas telarañas por desenredar. Recapitulemos: Elasticsearch es de código abierto y gratuito, y cualquiera puede configurarlo fácilmente y usarlo sin límites.

Y ahora, como era de esperar, profundicemos en las razones para elegir Elasticsearch:

  • Motor de búsqueda maduro y probado en batalla. Esto significa que es mucho más probable que encuentre soluciones si tiene errores «extraños».
  • Enfoque de primera clase en clústeres, escalabilidad y escrituras asincrónicas.
  • Accesible a través de una API REST simple (que es lo que todos los demás terminaron copiando).
  • Orientado a documentos, pero admite esquemas si es necesario.
  • Resultados increíblemente rápidos y precisos. Velocidad de búsqueda configurable.
  • Documentación estelar, tanto en cantidad como en utilidad.
  • Una plataforma en la nube completa de búsqueda y análisis (la pila ELK), si tiene ganas de pagar por la comodidad.

La única objeción que tendría contra Elasticsearch es el consumo masivo de RAM. Quiero decir, como consultores, es bastante difícil convencer a los clientes de que inviertan en un servidor que cuesta $ 20 / mes, que lamentablemente no se acerca a lo que exige Elasticsearch.

Si tiene curiosidad por aprender Elasticsearch, consulte este curso de Udemy.

sentido del tipo

Typesense es un motor de búsqueda ligero, sencillo pero potente. Aquellos que buscan utilidad y simplicidad definitivamente deberían probar este.

Una de las mejores cosas de Typesense es que puedes probarlo directamente en su sitio web. Eso puede ahorrarle frustración y tiempo en los casos en los que configura todo y prueba la API. . . solo para descubrir que una o más de las funciones no funcionan de la manera que le hubiera gustado.

Eso no quiere decir que pueda haber errores en el motor; es solo que la versión del motor de algo puede no ser su preferencia, o puede estar en total conflicto con su dominio comercial. Errores tipográficos, símbolos especiales, sinónimos y más. . . puede verificar los resultados que arroja el motor directamente en la página de inicio (están usando una base de datos de libros para esto).

Como puede ver, esta sección está justo debajo de la superior. En el cuadro de búsqueda, ingresé la consulta «tra», y debajo veo resultados coincidentes de la base de datos de libros (así como metadatos: resultados totales, página actual, etc.).

Typesense tiene mucho a su favor cuando se trata de un motor de búsqueda de elección:

  • La tecnología detrás de esto es totalmente de código abierto y acogedor.
  • Fácil de configurar una configuración HA (alta disponibilidad), en caso de que necesite una.
  • Tolerante cuando se trata de errores tipográficos y otros ruidos en las consultas de búsqueda.
  • Un sistema de filtrado avanzado para aquellos que necesitan un control detallado de los resultados de búsqueda.
  • API REST simple, ¡aunque sus documentos te harán trabajar más duro para encontrarlo!
  • Los clientes (SDK) están disponibles para algunos de los principales lenguajes (JavaScript, Python, Ruby y PHP).

Finalmente, si encuentra que la idea de configurar nuevos servidores es agotadora, Typesense también tiene una oferta en la nube donde el aprovisionamiento requiere un solo clic. La facturación es por hora, y las lecturas y escrituras no se miden. Francamente, diré que esta es la mejor opción para la mayoría de las empresas, siempre que hayan calculado el precio por adelantado y se hayan asegurado de que sea una ganancia neta.

Con todo, Typesense tiene mucho sentido (¡sin juego de palabras!) si necesita algo pequeño, ingenioso, preciso y un verdadero caballo de batalla.

Sonic

Sonic se enorgullece de ser una alternativa de ElasticSaerch que se ejecuta en «unos pocos MB de RAM».

¿Cómo es esto posible?

Bueno, se sabe que la máquina virtual de Java (JVM) consume mucha RAM (generalmente, el solo inicio de la JVM consume alrededor de 1 GB de RAM); No sorprende, entonces, que algo codificado en el lenguaje Rust (que brinda control total y seguridad de la memoria para los desarrolladores) pueda ejecutarse igual de rápido y usar solo unos pocos MB de RAM.

¡Relájense todos! Esa es solo la mascota del proyecto.

Al momento de escribir, hay un par de compañías que figuran entre sus usuarios, aunque estoy seguro de que hay algunas más que no se molestaron en agregar sus nombres. No recuerdo cómo o el marco de tiempo exacto, pero me encontré con Sonic antes; en ese momento, aunque estaba feliz de ver una alternativa con poca memoria, pensé que necesitaría tiempo para estabilizarse y eliminar errores ocultos. Pues parece que más o menos han llegado; qué tan popular se vuelve Sonic es algo que solo el tiempo dirá.

De acuerdo, dejando de lado las reflexiones, ¿por qué debería considerar usar Sonic para su organización/proyecto?

Aquí hay algunas razones:

  • Huella de memoria extremadamente baja, en lo que respecta a los motores de búsqueda.
  • Las bibliotecas están disponibles para todos los principales lenguajes de programación. Node, PHP y Rust son los que lanzaron los propios autores, mientras que otros fueron creados por la comunidad (¡alégrate, porque también se cubren rígidos exóticos como Elixir y Nim!).
  • Se admiten varios idiomas (era demasiado para contar, pero creo que al momento de escribir, se admiten 40-50 idiomas).
  • ¡Una sorpresa! Incluso puedes usar nuevos idiomas y el motor funcionará (😂😂), aunque perderás algunas funciones avanzadas como las palabras vacías.
  • Motor muy rápido. Si revisa su página de GitHub, verá que los tiempos de ingestión y búsqueda fueron en microsegundos en varios casos. Por supuesto, esta fue una prueba de una sola máquina, ya que la latencia de la red nunca permitirá que los números sean tan bajos.

Si quieres ver este motor en acción, ve a este enlace (una de sus empresas usuarias) y juega con el cuadro de búsqueda que ves allí:

Hay ciertas limitaciones para Sonic como motor de búsqueda. Los desarrolladores los han resaltado y discutido abiertamente en su página de GitHub. Mi consejo sería examinar de cerca esta lista y establecer que sus casos de uso no son comunes con su dominio. Dicho esto, todo tiene limitaciones; es solo que se mantienen ocultos, por lo que no nos damos cuenta hasta que es demasiado tarde. Por lo tanto, considero que Sonic es una excelente opción para un motor de búsqueda.

TNTBuscar

Ahora tenemos una entrada fascinante en esta lista. ¡Lo primero interesante es que este motor de búsqueda completo y listo para producción fue escrito en PHP!

Sí, de todos los lenguajes posibles, PHP. Y lo digo no porque odie PHP, sino porque es un proceso de corta duración por diseño.

La segunda cosa interesante es su licencia, al menos al momento de escribir. En realidad, la licencia en sí es MIT, por lo que no hay problemas, pero los autores clasifican este software como PS4Ware; si usa TNTSearch en producción, ¡debe enviarles un juego de PS4! 😂😂 Ahora, no es obligatorio, como indica el «debería», pero es divertido más allá de lo creíble. También espero que lo actualicen a una licencia de PS5, aunque ahora es demasiado pronto.

De todos modos, viniendo de un sólido conocimiento de PHP + Laravel, aprecio mucho los esfuerzos de estos muchachos. Su sitio web no dice mucho, pero parece indicar que son consultores, por lo que le recomiendo que se comunique con ellos si tiene proyectos.

Ahora, ¿hay alguna buena razón para usar TNTSearch en sus proyectos?

Sí hay:

  • Codificado en PHP, para PHP, por PHP. El ecosistema PHP necesita soluciones más dedicadas y de alta calidad como esta.
  • Funciones importantes como búsqueda difusa, búsqueda geográfica y clasificación de texto.
  • Fácil de cambiar el índice de búsqueda, que es una gran flexibilidad que falta en muchas soluciones.
  • La derivación, la clasificación BM25 y la tokenización personalizada garantizan una alta precisión.
  • Fácil implementación, ¡igual que cualquier otro paquete de Composer!

Puede comprobar el rendimiento del motor aquí y ver por sí mismo lo rápido y preciso que es. Volvería a enfatizar el aspecto de PHP: si está manteniendo un proyecto de PHP, desea permanecer dentro de las paredes de PHP tanto como sea posible (¿por qué? Piense en los costos de capacitación). ¡Y para tales casos, TNTSearch trae una propuesta de valor que es difícil de rechazar!

Vespa

Vespa es una oferta amplia y de peso pesado. Al igual que un par de otras entradas en esta lista, es demasiado grande para ser capturado en pocas palabras. Pero debo intentarlo, así que lo haré. 🙂 Vespa es un motor de búsqueda, claro, pero usarlo como un motor de búsqueda ordinario sería desperdiciar su potencial.

Vespa se creó para manejar cantidades infinitas de datos (Big Data) y proporcionar funciones basadas en aprendizaje automático y una personalización infinita además de eso.

Vespa se posiciona como un competidor de Elasticsearch y las bases de datos tradicionales y proporciona una comparación decente sobre qué usar y cuándo.

Como puede ver, cuanto más se acerque a las operaciones impulsadas por el aprendizaje automático, más sentido tiene Vespa. Como motor de búsqueda puro para pequeñas y medianas empresas, no creo que tenga ninguna ventaja sobre otras opciones.

Ahora, teniendo en cuenta que está generando grandes cantidades de datos continuamente y desea mejorar la toma de decisiones a través de AI/ML (una descripción que se ajusta a muchas empresas de SaaS en la actualidad), he aquí por qué Vespa tiene mucho sentido:

  • Código abierto: sin licencias extrañas ni contratos de captura. Y nada que pagar además de eso, aunque siempre recalco que las empresas pagan una suma regular a los proyectos que más usan (incluso $ 50 / mes les ayudará mucho).
  • Tiempo real: Vespa es realmente en tiempo real. No solo puede digerir, analizar y buscar datos a medida que ingresan; incluso su configuración se puede modificar sobre la marcha.
  • Escalable y tolerante: Vespa es fácil de escalar. También responde muy bien a la desaparición repentina de nodos, aportando una alta fiabilidad.
  • Clasificación y recomendaciones: las recomendaciones de búsqueda, clasificación y Vespa se pueden fusionar con consultas estructuradas para ofrecer resultados verdaderamente precisos.
  • AI/ML indoloro: Vespa viene con modelos ML preentrenados de alta calidad. No necesita contratar a 20 científicos de datos para limpiar y usar sus datos.
  • Complementos personalizados: hay un conjunto completo de API que ayudan a los desarrolladores a crear complementos de Java personalizados, en caso de que necesiten modificar el funcionamiento del motor.

Vespa es enorme, sin duda, por lo que está claro para los equipos que están un poco más allá del nivel inicial, ya sea por el tamaño del equipo, la destreza tecnológica, los presupuestos de infraestructura, los volúmenes de datos diarios o algo más. Para este segmento, Vespa pegará un jonrón y es muy recomendable.

ámbar

Para algunas empresas, los datos de búsqueda no se transforman y almacenan perfectamente como documentos JSON; más bien, es un desastre en el verdadero sentido de la palabra: una colección caótica de todo tipo de documentos como Word, PDF, archivos HTML, etc. Si eres uno de ellos y pensabas que no había esperanza para ti, bueno, di hola a Ambar!

Lo mejor de Ambar es el gran tipo de archivos con los que puede trabajar:

  • Formatos de archivo de MS Office (.docx, .xlsx, etc.), incluidos PowerPoint, Visio y Publisher.
  • Formatos de archivo de Open Office
  • Documentos PDF con OCR automático aplicado para extraer información.
  • Imágenes
  • Formatos de archivo de correo electrónico como PST (¡hola, usuarios de Outlook!)
  • Mensajes de correo electrónico con archivos adjuntos

Las golosinas no terminan aquí, también. Ambar es capaz de trabajar con archivos grandes (más de 30 MB), archivos ZIP y subprocesos múltiples para una utilización completa de la CPU y resultados más rápidos. Entonces, si tiene años de documentos en algún disco en un servidor olvidado, ¡es hora de recuperarlo y enviarlo todo a Ambar!

Conclusión

¡La búsqueda 🔎 es poderosa, la búsqueda es mágica y la búsqueda está en todas partes!

Incluso podría ser magia negra, pero hoy en día no hay ninguna razón por la que todos (con la ayuda de un desarrollador, por supuesto) no puedan obtener sus beneficios. Desde empresas hasta particulares y gobiernos, los motores de búsqueda de esta lista brindan una oferta de esfuerzo casi nulo con beneficios e impacto exponenciales.

Continúe y obtenga un servidor en la nube e instale el software de búsqueda mencionado anteriormente que le gusta experimentar.