Parece desalentador, pero añadir una potente función de búsqueda a su aplicación no es complejo ni requiere mucho tiempo. Aquí tiene algunas recomendaciones sólidas
Aunque muchas tecnologías han impresionado en las últimas 2-3 décadas, la búsqueda es una de las pocas que se han convertido en parte integral de nuestras vidas. Está en todas partes -sitios de comercio electrónico, blogs, bases de conocimientos y más- no porque un cuadro de búsqueda y un icono parezcan geniales, sino porque hace algo que se necesita desesperadamente.
Si es usted una empresa que busca una buena solución de búsqueda o está cansado de la que ya tiene, ¿qué puede hacer?
Afortunadamente, no necesita pagar ridículos derechos de licencia ni mantener un equipo de 20 desarrolladores y administradores de sistemas. Hoy tengo algunas recomendaciones de motores de búsqueda que pueden instalarse e integrarse en muy poco tiempo, sobre todo por parte de pequeñas empresas con equipos de desarrolladores de tamaño 1-2.
MeiliSearch
Uno de los mejores y más valiosos motores de búsqueda que encontrará es MeiliSearch.
Entonces, ¿qué me hace incluir a MeiliSearch entre mis principales recomendaciones?
Ahí va.
Código abierto
Todo el código fuente que alimenta MeiliSearch está disponible en abierto en GitHub. Eso significa que los desarrolladores pueden examinar por sí mismos cualquier parte del código. 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 bien informados pueden ayudar a mejorar aún más la tecnología.
Gran UX
MeiliSearch no tiene reglas complejas (como «a – b» significa a pero no b). Simplemente escriba su búsqueda de forma natural y los resultados empezarán a aparecer con fluidez. El motor es muy tolerante y complaciente, ofreciendo resultados precisos incluso cuando se utilizan errores tipográficos o sinónimos. También es compatible con varios idiomas.
Gran DevEx
A los desarrolladores les encantará MeiliSearch No sólo es personalizable y escalable, ¡sino que interactúa como una API REST! La documentación también es excelente y completa. Aunque hacer llamadas HTTP es trivial en cualquier lenguaje, se dan ejemplos de cinco lenguajes (JavaScript, Ruby, Python, Golang y PHP) para los que tengan prisa por arrancar.
Las soluciones de búsqueda sencillas deben ser fáciles de usar y configurar. Como tal, MeiliSearch ¡marca todas las casillas! Cuando esté contento de proceder, póngalo en marcha en DigitalOcean con un solo clic.
Solr
Solr, parte del proyecto Apache, existe desde hace unos años. Se basa en la conocida y muy fiable 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 potentes, escalables, conformes a los estándares, ricas en funciones y fiables.
Lo utilizan 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 sencilla (digamos, una sola máquina, sin escalado, sin conmutación por error… bueno, a veces está bien) y hacer uso de este centro neurálgico llamado Solr.
Entonces, ¿por qué utilizar Solr?
He aquí algunas excelentes razones.
Preciso y potente
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é grandes nombres (como se ha mencionado antes) se han lanzado a por él. Su capacidad para digerir documentos y responder a consultas de búsqueda es insuperable.
Instalación y mantenimiento sencillos
Instalar Solr es tan sencillo como descomprimir y ejecutar el programa. Para sistemas sencillos, 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 guardan o intentan guardar todo en RAM para ofrecer lecturas/escrituras rápidas).
Panel de administración
Solr viene con un panel de administración que permite la supervisión visual y la configuración. Con un poco de formación trivial, incluso los no desarrolladores pueden aprender a leer los cuadros clave. No muchas soluciones de búsqueda de esta lista vienen con una funcionalidad como ésta.
Basado en API y conforme a los estándares
Solr proporciona una interfaz de resultados en una API que puede manejar múltiples formatos: JSON, CSV, XML y binario. Da salida a los datos de monitorización según el estándar JMX, una gran ayuda para los desarrolladores Java.
Hay mucho más que decir a favor de Solr, pero intentar abarcarlo todo nos llevaría hasta el fin de los tiempos. 😂 Baste decir que Solr es una solución de primera categoría y que nunca se equivocará con ella, independientemente del tipo de datos con el que trabaje.
Elasticsearch
Elasticsearch fue, y podría decirse que sigue siendo, un pionero en la búsqueda de texto libre. De hecho, incluso hoy en día, si le pide a un programador o administrador de sistemas una recomendación sobre motores de búsqueda, es muy probable que Elasticsearch sea el único nombre que se le ocurra. Claro que, hoy en día, una parte considerable recomendará también algo como Algolia, pero ya hemos hablado de cómo resulta eso. 🤪
No se deje engañar por el botón «Iniciar prueba gratuita» del gráfico anterior. Aunque el núcleo de la tecnología Elasticsearch en sí es de código abierto y gratuito, la empresa está tratando de monetizar sus esfuerzos y dirigirse a las empresas. De ahí que lo que ve aquí sea en realidad la versión de prueba de su servicio en la nube, que facilita la gestión de Elasticsearch, sobre todo cuando hay clusters de por medio.
Uff, cuántas telarañas que desenredar. Recapitulemos: Elasticsearch es de código abierto y gratuito, y cualquiera puede configurarlo fácilmente y utilizarlo sin límites.
Y ahora, como era de esperar, sumerjámonos en las razones para elegir Elasticsearch:
- Motor de búsqueda maduro y probado. Esto significa que tiene muchas más posibilidades de encontrar soluciones si se encuentra con fallos «raros».
- Enfoque de primera clase en clustering, escalabilidad y escrituras asíncronas.
- Accesible a través de una sencilla API REST (que es lo que todos los demás acabaron 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 completa plataforma de búsqueda y análisis en la nube (la pila ELK), si le apetece pagar por la comodidad.
La única pega que le pondría a Elasticsearch es el enorme consumo de RAM. Como consultores, ya es bastante difícil convencer a los clientes de que inviertan en un servidor que cuesta 20 dólares al mes, lo que lamentablemente no se acerca ni de lejos a lo que exige Elasticsearch.
Si tiene curiosidad por aprender Elasticsearch, consulte este curso de Udemy.
Typesense
Typesense es un motor de búsqueda ligero, sencillo pero potente. Aquellos que busquen utilidad y sencillez deberían probarlo sin duda.
Una de las mejores cosas de Typesense es que puede probarlo directamente en su sitio web. Eso puede ahorrarle frustración y tiempo en los casos en que configure todo y pruebe la API… sólo para descubrir que una o más de las características no funcionan como le hubiera gustado.
Esto no quiere decir que pueda haber errores en el motor; es sólo que la forma en que el motor aborda algo puede no ser la que usted prefiere, o puede entrar en conflicto de plano con el dominio de su negocio. Errores tipográficos, símbolos especiales, sinónimos y mucho más… puede comprobar los resultados que arroja el motor justo en la página de inicio (para ello utilizan una base de datos de libros).
Como puede ver, esta sección está justo debajo de la superior. En el cuadro de búsqueda, he introducido la consulta «tra», y debajo veo los resultados coincidentes de la base de datos de libros (así como los 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 que lo sustenta es totalmente de código abierto y acogedora.
- Fácil de configurar una configuración HA (Alta Disponibilidad ), en caso de que la necesite.
- Tolerante cuando se trata de errores tipográficos y otros ruidos en las consultas de búsqueda.
- Un sistema de filtrado avanzado para quienes necesiten un control minucioso de los resultados de la búsqueda.
- API REST sencilla, ¡aunque sus documentos le harán trabajar mucho para encontrarla!
- Hay clientes(SDK) disponibles para algunos de los principales lenguajes (JavaScript, Python, Ruby y PHP).
Por último, si la idea de configurar nuevos servidores le resulta agotadora, Typesense también dispone de una oferta en la nube en la que el aprovisionamiento se realiza con un solo clic. La facturación es por horas, y las lecturas y escrituras no se miden. Francamente, diría que esta es la mejor opción para la mayoría de las empresas, siempre que hayan calculado el precio de antemano y se hayan asegurado de que es una ganancia neta.
En definitiva, Typesense tiene mucho sentido (¡sin juego de palabras!) si necesita algo pequeño, hábil, preciso y un verdadero caballo de batalla.
Sonic
Sonic se enorgullece de ser una alternativa a ElasticSaerch que funciona con «unos pocos MB de RAM».
¿Cómo es esto posible?
Bueno, la máquina virtual Java (JVM) es conocida por ser hambrienta de RAM (por lo general, sólo arrancar la JVM se come alrededor de 1 GB de RAM); no es de extrañar, entonces, que algo codificado en el lenguaje Rust (que proporciona un control total y seguridad de memoria para los desarrolladores) pueda ejecutarse igual de rápido y utilizar sólo unos pocos MBs de RAM.
En el momento de escribir estas líneas, hay un par de empresas que figuran entre sus usuarios, aunque estoy seguro de que hay algunas más que no se molestaron en añadir sus nombres. No recuerdo cómo ni el marco temporal exacto, pero ya me había topado con Sonic anteriormente; en aquel momento, aunque me alegré de ver una alternativa de baja memoria, pensé que necesitaría tiempo para estabilizarse y limar los errores ocultos. Pues bien, parece que más o menos han llegado; lo popular que llegue a ser Sonic es algo que sólo el tiempo dirá.
Bien, largas cavilaciones aparte, ¿por qué debería considerar el uso de Sonic para su organización/proyecto?
He aquí algunas razones:
- Huella de memoria extremadamente baja, en lo que a motores de búsqueda se refiere.
- Haybibliotecas disponibles para los principales lenguajes de programación. Node, PHP y Rust son los que los propios autores publicaron, mientras que otros fueron creados por la comunidad (¡alégrese, porque también se cubren rígidos exóticos como Elixir y Nim!).
- Varios lenguajes son soportados (era demasiado para contar, pero creo que al momento de escribir, 40-50 lenguajes son soportados).
- ¡Una sorpresa! Incluso puede utilizar nuevos idiomas y el motor funcionará (😂😂), aunque perderá algunas funciones avanzadas como las palabras de parada.
- Un motor muy rápido. Si consulta su página de GitHub, ¡verá que los tiempos de ingestión y búsqueda fueron de microsegundos en varios casos! Por supuesto, se trataba de una prueba con una sola máquina, ya que la latencia de la red nunca permitirá que las cifras sean tan bajas.
Si quiere ver este motor en acción, vaya a este enlace (una de sus empresas usuarias) y juegue con el cuadro de búsqueda que verá allí:
Sonic tiene ciertas limitaciones como motor de búsqueda. Los desarrolladores las han destacado y discutido abiertamente en su página de GitHub. Mi consejo sería que examinara detenidamente esta lista y comprobara que sus casos de uso no coinciden con los de ellos. Dicho esto, todo tiene limitaciones; lo que ocurre es que se mantienen ocultas y por eso no nos damos cuenta hasta que es demasiado tarde. Por lo tanto, considero que Sonic es una gran elección para un motor de búsqueda.
TNTSearch
Ahora tenemos una entrada fascinante en esta lista. Lo primero interesante es que este motor de búsqueda completo en características y listo para la 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 efímero por diseño.
La segunda cosa interesante es su licencia, al menos en el momento de escribir esto. En realidad, la licencia en sí es MIT, así que no hay problemas ahí, pero los autores clasifican este software como PS4Ware; si utiliza TNTSearch en producción, ¡debería enviarles un juego de PS4! 😂😂 Ahora bien, no es obligatorio, como indica el «debería», pero es divertido a más no poder. También espero que lo actualicen a una licencia para PS5, aunque ahora es demasiado pronto.
De todos modos, viniendo yo mismo de una fuerte formación en PHP Laravel, aprecio mucho los esfuerzos de estos chicos. Su sitio web no dice mucho pero parece indicar que son consultores, ¡así que le recomiendo encarecidamente que se ponga en contacto con ellos si tiene proyectos!
Ahora, ¿hay buenas razones para utilizar TNTSearch en sus proyectos?
Sí, las hay:
- Codificado en PHP, para PHP, por PHP. El ecosistema PHP necesita más soluciones dedicadas y de alta calidad como ésta.
- Características importantes como búsqueda difusa, geo-búsqueda y clasificación de texto.
- Facilidad para cambiar el índice de búsqueda, una flexibilidad importante que falta en muchas soluciones.
- El stemming, la clasificación BM25 y la tokenización personalizada garantizan una gran precisión.
- Fácil despliegue: ¡como cualquier otro paquete de Composer!
Puede comprobar el rendimiento del motor aquí y ver por sí mismo lo rápido y preciso que es. Destacaría de nuevo el aspecto PHP: si mantiene un proyecto PHP, querrá permanecer dentro de los muros de PHP tanto como sea posible (¿por qué? piense en los costes de reciclaje). Y para estos casos, ¡TNTSearch aporta una propuesta de valor difícil de rechazar!
Vespa
Vespa es una oferta amplia y pesada. Al igual que otras entradas de esta lista, es demasiado grande para ser capturada en pocas palabras. Pero debo intentarlo, así que lo haré 🙂 Vespa es un motor de búsqueda, claro, pero utilizarlo como un motor de búsqueda corriente será desperdiciar su potencial.
Vespa fue construido para manejar cantidades interminables de datos (Big Data) y proporcionar características basadas en Machine Learning y una personalización sin fin por encima de eso.
Vespa se posiciona como competidor de Elasticsearch y de las bases de datos tradicionales y ofrece una comparación decente sobre qué utilizar 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 una empresa pequeña o mediana, no creo que tenga ninguna ventaja sobre otras opciones.
Ahora bien, teniendo en cuenta que está generando grandes cantidades de datos continuamente y que desea mejorar la toma de decisiones mediante IA/ML (una descripción que se ajusta a muchas empresas de SaaS hoy en día), he aquí por qué Vespa tiene mucho sentido:
- Código abierto: Sin licencias raras ni contratos trampa. Y encima no hay que pagar nada, aunque siempre hago hincapié en que las empresas paguen una cantidad regular a los proyectos que más utilizan (incluso 50 dólares al mes les ayudará mucho).
- En tiempo real: Vespa es verdaderamente en tiempo real. No sólo digiere, cruje y busca datos a medida que llegan; incluso su configuración puede modificarse sobre la marcha.
- Escalable y tolerante: Vespa es trivial a escala. También responde muy bien a la desaparición repentina de nodos, proporcionando una gran fiabilidad.
- Clasificación y recomendaciones: La búsqueda, la clasificación y las recomendaciones de Vespa pueden fusionarse con consultas estructuradas para ofrecer resultados realmente precisos.
- IA/ML sin dolor: Vespa viene con modelos ML preentrenados de alta calidad. No necesita contratar a 20 científicos de datos para limpiar y utilizar sus datos.
- Plugins personalizados: Existe un conjunto completo de API que ayudan a los desarrolladores a crear plugins Java personalizados, en caso de que necesiten alterar el funcionamiento del motor.
Vespa es masivo, sin duda, por lo que está claro que es para 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 cualquier otra cosa. Para este segmento, Vespa dará en el blanco y es muy recomendable.
Conclusión
La búsqueda 🔎 es poderosa, la búsqueda es mágica, ¡y la búsqueda está en todas partes!
Puede que incluso sea magia negra, pero hoy en día no hay ninguna razón por la que todo el mundo (con algo de ayuda de los desarrolladores, por supuesto) no pueda cosechar sus beneficios. Desde empresas hasta particulares y gobiernos, los motores de búsqueda de esta lista proporcionan una oferta de esfuerzo casi nulo con beneficios e impacto exponenciales.
Adelante, consiga un servidor en la nube e instale el software de búsqueda de la lista anterior que le guste experimentar.