engine javascript node.js lucene indexing search-engine

javascript - search engine js



¿Hay un buen motor de indexación/búsqueda para Node.js? (4)

¿Puedes explicar por qué no estás interesado en usar un índice externo? Para la búsqueda de texto completo, siempre vuelvo a utilizar las funciones de indexación de texto completo de PostgreSQL: es muy rápido, la indexación no requiere una actualización de índice completa (como hace Solr) y los resultados se devuelven más rápido que las soluciones basadas en Lucene (como Elastic Search )

Pero si realmente quieres hacerlo en proceso, probablemente quieras mirar Lunr: http://lunrjs.com/ - funciona en Nodo, no solo en el navegador.

Editar: Aquí es donde obtuve mis estadísticas en Postgres que son más rápidas que Lucene: http://fr.slideshare.net/billkarwin/full-text-search-in-postgresql - ver Diapositiva 49.

Editar: No estoy seguro de qué tipo de velocidad está buscando para entrar / salir del proceso, pero nuestra base de datos PostgreSQL puede hacer 100k consultas por segundo sin perder el tiempo, y ni siquiera está en SSD. Tal vez esté pensando demasiado en sus necesidades de rendimiento, después de todo, una vez que necesite ir a múltiples nodos (o utilizar el clúster para aprovechar todas las CPU), deberá realizar el proceso en cualquier momento.

Estoy buscando un buen motor de indexación de fuente abierta (con LGPL o una licencia permisiva) para una aplicación node.js, algo así como Lucene. Estoy buscando indexación y búsqueda en proceso y no estoy interesado en indexar servidores como Sphinx o Solr.

No tengo miedo de crear enlaces para una biblioteca C / C ++ tampoco, así que estoy abierto a ese tipo de sugerencias también.

Hasta ahora he encontrado

  • node-clucene que ya no parece mantenerse activamente (y tiene varios problemas abiertos)
  • Pude crear mi propio enlace para CLucene, pero parece ser bastante escaso y su versión actual también está muy por detrás de Java Lucene.
  • Apache Lucy que parece estar diseñado con el propósito de crear enlaces para lenguajes dinámicos, pero hasta ahora no tienen enlaces de nodo (ni una API de C) y no he encontrado ningún documento sobre la creación de enlaces. Tampoco encontré ningún punto de referencia sobre su rendimiento.
  • búsqueda de nodos que parece estar abandonada
  • jsii que parece ser todavía un prototipo y también está abandonado
  • fullproof que solo está destinado a ejecutarse en un navegador web
  • lunr.js que parece permitir solo la serialización del índice completo, por lo que no es escalable

Podría "hacer mi propio", pero preferiría usar una solución ya existente.

EDITAR: Por qué no estoy interesado en un servidor de índice independiente: uso una base de datos de almacenamiento de clave-valor rápida en proceso, por lo que sería un desperdicio tener que salir del proceso para realizar consultas.


Sí, Norch el recién publicado Norch

Norch se basa en el módulo de search-index para node.js, que a su vez se basa en el poderoso índice de nivelDB de Google.

EDITAR: use el search-index para una rápida capacidad de búsqueda "en proceso".


Solo una actualización de mi respuesta anterior, ya que hubo tantas discusiones que no quería que esta actualización se perdiera.

Puede descargarlo aquí: https://github.com/fergiemcdowall/norch