Parece abrumador, 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 dos o tres décadas, una búsqueda es una de las pocas que se convirtió en parte integral de nuestras vidas. Está en todas partes: sitios de comercio electrónico, blogs, bases de conocimientoy más, no porque un cuadro de búsqueda y un icono se vean bien, sino porque hace algo que se necesita desesperadamente.

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

Afortunadamente, no es necesario pagar tarifas de licencia ridículas, ni tampoco es necesario 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 para las pequeñas empresas con revelador equipos de tamaño 1-2.

MeiliSearch

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

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

Aquí va.

Open Source

Todo el código fuente que impulsa MeiliSearch está disponible al aire libre 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 o escáner en el programa, por ejemplo). Y, por supuesto, los desarrolladores expertos 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 comenzarán a aparecer con fluidez. El motor es altamente tolerante y acomodativo, y ofrece 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 solo es personalizable y escalable, sino que también funciona como una API REST. Documentación También es excelente y completo. Si bien realizar llamadas HTTP es trivial en cualquier idioma, se ofrecen ejemplos de cinco idiomas (JavaScript, Ruby, Python, Golang y PHP) para aquellos que tienen 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 Digital Ocean con un solo clic.

Solr

Solr, parte del Proyecto Apache, existe desde hace algunos años. Está construido sobre 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?

A continuación, presentamos algunas excelentes razones.

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 simple como descomprimir y ejecutar el programa. Para sistemas simples de una sola máquina, no se requiere un mantenimiento complicado; Esté atento al 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 tratan de 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 cantidad trivial de capacitación, 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 funcionalidades 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 intentar cubrirlo todo nos llevará al final de los tiempos. 😂 Basta decir que Solr es una solución de primer nivel y que nunca se equivocará, 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 forma libre. De hecho, incluso hoy, si le pide a un programador o administrador de sistemas una recomendación en los motores de búsqueda, es muy probable que Elasticsearch sea el , solamente nombre que se les ocurrirá. Claro, en estos días, una gran cantidad recomendará algo como Algolia también, pero ya hemos cubierto cómo se resuelve eso. 🤪

No se deje engañar por el botón "Iniciar prueba gratuita" en el gráfico de arriba. Mientras que el núcleo Elasticsearch La tecnología en sí es de código abierto y gratuita, la compañía 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 redes para 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:

  • Maduro, probado en batalla buscador. Esto significa que es mucho más probable que encuentre soluciones si está atrapado con errores “extraños”.
  • Enfoque de primera clase en clustering, escalabilidad y escrituras asincrónicas.
  • Accesible a través de un API REST simple (que es lo que todos los demás terminaron copiando).
  • Orientado a documentos pero admite esquema si es necesario.
  • Increíblemente rápido y preciso resultados. configurable velocidad de búsqueda.
  • Documentación estelar, tanto en la cantidad como en la utilidad.
  • Una completa búsqueda y análisis plataforma en la nube (El Pila de ELK), si desea pagar por la conveniencia.

El único problema 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 al mes, lo que lamentablemente no se acerca a lo que demanda Elasticsearch.

Si tiene curiosidad por aprender Elasticsearch, consulte este Curso Udemy.

Typesense

sentido del tipo es un motor de búsqueda ligero, sencillo y 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 como le hubiera gustado.

Eso no quiere decir que pueda haber errores en el motor; es solo que la versión del motor de algo podría no ser su preferencia, o podría estar completamente en 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 más alta. 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 completamente de código abierto y acogedor.
  • Fácil de configurar un HA (alta disponibilidad) setup, si necesita uno.
  • Tolerante cuando se trata de errores tipográficos y otros ruidos en las consultas de búsqueda.
  • An filtrado avanzado sistema para aquellos que necesitan un control detallado de los resultados de búsqueda.
  • Sencillo REST API, ¡aunque sus documentos te harán trabajar más duro para encontrarlo!
  • Clientes (SDK) están disponibles para algunos de los principales idiomas (JavaScript, Python, Ruby y PHP).

Por último, si encuentra cansada la idea de configurar nuevos servidores, Typesense también tiene una oferta en la nube donde el aprovisionamiento requiere un solo clic. La facturación se realiza por horas y lectura, y las 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 necesitas algo pequeño, hábil, 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 Java (JVM) consume mucha RAM (por lo general, el simple hecho de iniciar la JVM consume alrededor de 1 GB de RAM); No es de extrañar, entonces, que algo codificado en el lenguaje Rust (que proporciona control total y seguridad de memoria para los desarrolladores) pueda ejecutarse con la misma rapidez y usar solo unos pocos MB de RAM.

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

Al momento de escribir este artículo, 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 período exacto de tiempo, 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 estabilizar y eliminar los errores ocultos. Bueno, parece que han llegado más o menos; lo popular que se vuelve Sonic es algo que solo el tiempo dirá.

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

Aquí hay algunas razones:

  • Extremadamente memoria baja huella, en lo que respecta a los motores de búsqueda.
  • Las bibliotecas están disponibles para los principales lenguajes de programación. Node, PHP y Rust son lo que lanzaron los propios autores, mientras que otros fueron creados por la comunidad (¡regocíjense, porque exóticos rígidos como Elixir y Nim también están cubiertos!).
  • Lenguajes severos son compatibles (era demasiado para contar, pero creo que al momento de escribir, se admiten entre 40 y 50 idiomas).
  • ¡Una sorpresa! Incluso puedes usar nuevos idiomas, y el motor funcionará (😂😂), aunque perderá algunas funciones avanzadas como las palabras vacías.
  • Muy motor rápido. Si consulta 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 desea ver este motor en acción, vaya a este enlace (una de sus empresas usuarias) y juegue con el cuadro de búsqueda que ve allí:

Sonic tiene ciertas limitaciones como motor de búsqueda. Los desarrolladores los han destacado 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.

TNTSearch

Ahora tenemos una entrada fascinante en esta lista. Lo primero que es interesante es que esta característica completa, un motor de búsqueda listo para producción, fue escrito en PHP.

Sí, de todos los lenguajes posibles, PHP. Y lo digo no porque odio 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 allí, pero los autores clasifican este software como PS4Ware; si utiliza TNTBuscar en producción, ¡deberías enviarles un juego de PS4! 😂😂 Ahora, no es obligatorio, como indica el "debería", pero es más divertido que lo creíble. También espero que lo actualicen a una licencia de PS5, aunque es demasiado pronto en este momento.

De todos modos, viniendo de una sólida experiencia en 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 bien, ¿existen buenas razones para utilizar TNTSearch en sus proyectos?

Sí hay:

  • Codificado en PHP, para PHP, por PHP. los Ecosistema PHP necesita soluciones más dedicadas y de alta calidad como esta.
  • Funciones importantes como Búsqueda borrosa, geo-búsqueday clasificación de texto.
  • Fácil de cambiar el índice de búsqueda, que es una gran flexibilidad que falta en muchas soluciones.
  • Stemming, clasificación BM25 y tokenización personalizada garantizan alta precisión.
  • Fácil implementación, como cualquier otro paquete de Composer.

Puedes comprobar el rendimiento del motor aquí y compruebe usted 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 los muros de PHP tanto como sea posible (¿por qué? Piense en los costos de reentrenamiento). ¡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. Como 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 estará desperdiciando su potencial.

Vespa fue construida para manejar cantidades infinitas de datos (Big Data) y proporcionar funciones impulsadas por Machine Learning 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 cerca desee obtener las operaciones impulsadas por el aprendizaje automático, más sentido tendrá Vespa. Como motor de búsqueda puro para una pequeña o mediana empresa, no creo que tenga ninguna ventaja sobre otras opciones.

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

  • Fuente abierta: Sin licencias extrañas ni contratos de captura. Y nada para pagar además de eso, aunque siempre hago hincapié en que las empresas pagan una suma regular por los proyectos que más utilizan (incluso 50 dólares al mes les ayudarán mucho).
  • Tiempo real: Vespa es verdaderamente en tiempo real. No solo puede digerir, procesar y buscar datos a medida que ingresan; incluso su configuración se puede modificar 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 alta fiabilidad.
  • Ranking y recomendaciones: Las recomendaciones de búsqueda, clasificación y Vespa se pueden fusionar con consultas estructuradas para ofrecer resultados realmente precisos.
  • AI / ML indoloro: Vespa viene con modelos ML de alta calidad previamente entrenados. No es necesario contratar a 20 científicos de datos para limpiar y utilizar sus datos.
  • Complementos personalizados:  Hay un conjunto completo de API que ayudan a los desarrolladores a crear complementos personalizados de Java, 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 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 dará un jonrón y es muy recomendable.

Ambar

Para algunas empresas, los datos de búsqueda no se transforman y almacenan de forma ordenada 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 piensas que no hay 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 OpenOffice
  • 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. Por lo tanto, si tiene años de documentos almacenados en algún disco en un servidor olvidado, ¡es hora de traerlo de vuelta y enviarlo todo a Ambar!

En resumen

La búsqueda 🔎 es poderosa, la búsqueda es mágica, 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 aprovechar sus beneficios. Desde empresas hasta individuos y gobiernos, los motores de búsqueda de esta lista proporcionan una oferta de esfuerzo casi nulo que tiene beneficios e impacto exponenciales.

Adelante, consigue un servidor en la nube e instale el software de búsqueda mencionado anteriormente que le gustaría experimentar.