Motor de búsqueda no Java autohospedado para mis sitios web estáticos

Quiero hospedar un motor de búsqueda que indexe mis sitios web estáticos.

No quiero usar un CMS (que normalmente tiene un motor de búsqueda integrado) para estos sitios, y no quiero referir a mis visitantes a un servicio de motor de búsqueda de terceros.

No tiene que ser un motor de búsqueda fácil de usar (como Google, Bing, etc.), es principalmente para usuarios avanzados, por lo que es posible que se requiera una sintaxis de búsqueda compleja.

Requisitos

Formalidades:

  • El motor de búsqueda debe ser FLOSS.

  • Debe ejecutarse en un servidor GNU/Linux.

  • No debe usar Java (sé que hay varios buenos proyectos de motores de búsqueda en Java, pero, desafortunadamente, mi host no lo admite).

back-end:

  • El motor de búsqueda debe indexar (X)HTML5. No se necesita soporte para otros formatos.

  • No quiero que el rastreador encuentre mis páginas por sí solo. En su lugar, quiero proporcionar una lista de URL que deben rastrearse (lo ideal es que sea compatible con uno de los formatos de sitemaps.org ).

  • No quiero agregar metadatos sobre los documentos en otro lugar que no sean los propios documentos.

Interfaz:

  • El motor de búsqueda no debe requerir JavaScript (excepto para funciones opcionales).
  • No debe establecer cookies (a menos que el usuario envíe explícitamente un formulario de configuración o similar).

Mi lista de deseos

  • Indexación: además del texto completo, debe indexar tantas señales como sea posible (por ejemplo, en forma de pares de nombre y valor), como metaetiquetas, RDFa/JSON-LD, elementos semánticos, etc.

  • SERP: Quiero poder definir cómo deberían verse los resultados, según los datos indexados. Similar a Rich Snippets de Google . Por ejemplo: mostrar una imagen, una lista, una tabla corta, etc.

  • Clasificación: Me gustaría poder ajustar el algoritmo de clasificación, por ejemplo, dando a cada campo una cierta puntuación/prioridad.

  • Operadores de búsqueda: Debe, al menos, admitir el booleano AND/ OR/ NOTy los corchetes (p. ej., (laptop OR notebook) (review OR reviews) -netbook). Cuantos más operadores, mejor (búsqueda por frase/rango/proximidad; búsqueda basada en campos; caracteres especiales, mayúsculas y minúsculas, etc.).

¿Sin Java? ¿Sin JavaScript? ¿Cómo va a funcionar? ¿Me estoy perdiendo de algo? Lo siento si eso suena grosero, no es la intención. Probablemente solo estoy siendo tonto, como de costumbre :-) Supongo que comprobaste SourceForge, etc. PD: se supone que debe ejecutarse en un navegador, ¿no es así?
@Mawg: Backend: en lugar de Java, puede usar cualquier otro lenguaje de programación comúnmente disponible en servidores web, por ejemplo, PHP, Python, Ruby o Perl. --- Interfaz: no debería haber necesidad de JavaScript; es solo un formulario HTML simple para el campo de búsqueda y una lista HTML simple para los resultados. --- Y sí, se supone que debe usarse en el navegador; lo integraré en mi sitio web.

Respuestas (2)

¿Qué pasa con el buen viejo ht:dig ?

La última versión es de 2004, por lo que no estoy seguro de cómo indexa los nuevos elementos introducidos por HTML5.

La compatibilidad con formatos de texto que no son HTML (PDF, DOCX...) también es subóptima, pero eso no estaba en su lista de requisitos.

También recomiendo sphinx - ver sphinxsearch.com

Sphinx es un servidor de búsqueda de texto completo de código abierto, diseñado desde cero teniendo en cuenta el rendimiento, la relevancia (también conocida como calidad de búsqueda) y la simplicidad de integración. Está escrito en C++ y funciona en Linux (RedHat, Ubuntu, etc.), Windows, MacOS, Solaris, FreeBSD y algunos otros sistemas.

Sphinx le permite indexar por lotes y buscar datos almacenados en una base de datos SQL, almacenamiento NoSQL o simplemente archivos de forma rápida y sencilla, o indexar y buscar datos sobre la marcha, trabajando con Sphinx prácticamente como con un servidor de base de datos.

Solo tengo buenas experiencias uniéndolo en Linux y Windows.