BookinglyTech News
Infraestructura

Luxir 0.1.0: un motor de búsqueda híbrido en C++ que no usa JVM

Yonik Seeley, autor original de Apache Solr, publica la primera versión de un motor de búsqueda híbrido en C++ con licencia Apache 2.0, texto y vectores en una sola petición.

3 min de lecturaDev.to0 vistas

Yonik Seeley ha publicado la primera versión pública de Luxir, un motor de búsqueda híbrido escrito en C++ y distribuido bajo Apache 2.0. Seeley es el autor original de Apache Solr y lleva años como committer de Lucene, pero Luxir no es Solr, ni Lucene, ni Elasticsearch, ni OpenSearch: es un motor aparte, sin JVM, que atiende HTTP con JSON en el puerto 9400 y gRPC en el 9401.

La versión es la 0.1.0, fechada en septiembre de 2026, y está marcada como pre-1.0: tanto la API como el formato en disco pueden cambiar sin aviso.

Qué hace

El listado lo da el propio proyecto. Ranking de texto completo con BM25 y un lenguaje de consulta pequeño que se puede escribir a mano. Búsqueda vectorial kNN con los filtros aplicados dentro de la propia búsqueda de vectores, no después. Ranking híbrido en una sola petición, fusionando resultados léxicos y vectoriales. Facetas y analíticas sobre la misma vista del índice: conteos, rangos, métricas. Geo, con caja y radio, componible con el resto. El argumento de venta es más búsqueda por núcleo, por gigabyte y por dólar.

Dos detalles de operación ahorran tiempo. Las colecciones aparecen en la primera escritura, así que se puede arrancar sin declarar un esquema. Y el índice solo se hace visible si la petición lleva ?commit=true; sin eso las búsquedas devuelven vacío. El endpoint /health responde {"status":"ok"}.

El binario es linux/amd64 y eso marca el resto

Aquí está el muro con el que choca quien evalúa motores de búsqueda desde un portátil. El binario oficial de la 0.1.0 es linux x86-64 v2 y no hay compilación nativa para ARM. En un Mac con Apple Silicon o en un Windows ARM hay que dejar que Docker emule esa plataforma (Rosetta en Mac, QEMU en el resto), y en Docker Desktop hay que activar antes la casilla de emulación x86/amd64, que es el paso que más gente se salta. Si falta, el contenedor falla con exec format error o se queda en bucle sin llegar a healthy.

Sirve para probar la API HTTP; no sirve para medir rendimiento. La emulación es más lenta que Linux nativo y quien quiera cifras de QPS debería ir a un x86-64 real. La guía de la comunidad habla de cuatro archivos (Dockerfile, docker-compose.yml, books.ndjson, search.json), un docker compose up --build -d y entre veinte y cuarenta minutos la primera vez, casi todo descarga de imagen. Quien prefiera el camino limpio tiene el binario en las notas de la versión y también el repositorio con el código.

Un aviso de los propios autores: no es un lanzamiento del proyecto ni una imagen oficial, son ficheros que envuelven el binario Linux que publica Luxir. Y conviene recordar que v2 es el nivel más amplio de Intel/AMD; cambiarlo a v3 o v4 en el primer intento es pedir problemas.

Que el autor de Solr saque un motor nuevo en C++ y sin JVM es motivo suficiente para dedicarle una tarde. Lo que falta por ver es si la API se estabiliza antes del 1.0 y si aparece un binario para ARM, que es lo que separa una demo de portátil de algo que se pueda desplegar.