Sobre un nuevo proyecto que necesita un uso duro de lucene para un buscador de la aplicación. Este buscador será muy importante (y grande) de la pieza del proyecto. Es válido o conveniente la sustitución de la Base de datos Relacional + Lucene con MongoDb?

edit: Ok, voy a aclarar: no estoy preguntando acerca de los riesgos, no puede pagar el precio en este proyecto. Mi punto es: Es MongoDB orientado a este tipo de cosas? Puedo hacer un completo motor de búsqueda con la misma perfomance como puedo conseguir en Lucene?. Un amigo me apunte a cabo MongoDB como alternativa, pero no veo si la Lucene rendimiento viene con el documento alternativo (y a continuación, voy a ver en MongoDB demasiado), o, en el otro lado, el índice invertido y optimitizations son complety independiente de la orientación del documento.

  • Mis 2 centavos: me gustaría tener una componented enfoque, en el que usted puede tener más adelante la posibilidad de cambiar el origen de datos subyacente
  • Ok, voy a aclarar: no estoy preguntando acerca de los riesgos, no puede pagar el precio en este proyecto. Mi punto es: Es MongoDB orientado a este tipo de cosas? Puedo hacer un completo motor de búsqueda con la misma perfomance como puedo conseguir en Lucene?. Un amigo me apunte a cabo MongoDB como alternativa, pero no veo si la Lucene rendimiento viene con el documento alternativo (y a continuación, voy a ver en MongoDB demasiado), o, en el otro lado, el índice invertido y optimitizations son complety independiente de la orientación del documento.
InformationsquelleAutor Hugo | 2010-03-30

10 Comentarios

  1. 19

    Técnicamente se puede hacer búsqueda de texto completo con MongoDB, pero te estás perdiendo de un montón de que una búsqueda de texto completo proveedor tiene para ofrecer. Me encanta MongoDB, pero me gustaría la pareja con una búsqueda de texto completo proveedor (como Lucene o Esfinge) si el tiempo de aplicación es en absoluto una preocupación. Creo que MongoDB conveniente capacidad de índice de la palabra de matrices es mejor dejar en manos de etiquetado y búsqueda basado en el etiquetado de búsqueda de texto completo.

    De búsqueda (Recuperación de Información) no es sólo acerca de agarrar a cualquier documentos que correspondan, si desea que sus resultados de búsqueda a tener alguna relevancia en todo lo que usted va a necesitar algo a lo largo de las líneas de la TF-IDF, frase de coincidencia (palabras en una secuencia de puntaje más alto) o cualquier número de otras técnicas de RI para mejorar la precisión de búsqueda. Si el uso de MongoDB deberá implementar todo desde cero.

    Si usted realmente desea implementar todo desde cero, pero no se moleste con los raw de almacenamiento lado de las cosas, MongoDB es bastante cerca de los mejores DB tienda que se podría implementar en la parte superior de la (no puedo pensar en muchos otros), pero que todavía no lo hace una gran opción.

  2. 2

    MongoDb es una NOSQl, Lucene y SOLR son los motores de búsqueda, y la adición de otra cosa que de la comparación es cachés, como la Terracota junto con EhCache. Todos tienen su propio propósito.

    Si la búsqueda junto con la búsqueda de texto completo es necesario con derivados, valores de relevancia, como muestra de los resultados con el texto correspondiente en título del producto ranking más que el texto correspondiente en desctription, y muchos de esos textos basados en características. También la clasificación, la relevancia, el sonido por igual macthing, parcial coincidencia de palabra, etc, etc . Todas estas cosas son mejor manejados por la búsqueda basada en sistemas de almacenamiento como SOLR y Lucene.

    Si su criterio es fater recuperación y usted no necesita su presentación de objetos de datos a ser duradera, a continuación, sólo tiene que utilizar un caché lke de Terracota.

    Si usted necesita una recuperación más rápida y también la necesidad de colloborate y la agregación de datos en un origen de datos y también la necesidad de que los datos agregados para ser duradera, a continuación, utilizar NOSQL como Mongodb.

  3. 2

    Mirada es posible, pero más lento (ver aquí)

    • Usted tendrá que hacer una palabra de división y los derivados de su auto.
    • Ranking de las consultas «requiere que el usuario suministra el código para hacerlo’
  4. 1

    No estoy familiarizado con MongoDB, así que no puedo responder directamente la pregunta, pero me gustaría señalar que a diferencia de Lucene (que es de unos diez años de edad) y bases de datos relacionales (que han estado alrededor por décadas) MongoDB es de menos de tres años.

    En esta etapa del juego es probable que aún en proceso de maduración. Puede ser adecuado a sus necesidades (y tengo curiosidad a ver si alguien familiarizado con el uso se va a hablar aquí), pero necesitará este factor en la ecuación. Está usted dispuesto a pagar el precio para usar tecnología de punta?

    Incluso si termina siendo estable y lo suficientemente eficiente, usted puede ejecutar en problemas con un apoyo limitado en la forma de sitios web/tutoriales etc. (debido a la pequeña base de usuarios). Usted también está tomando la oportunidad de que será discontinuado.

    Puede ser que vale la pena aprovechar esta oportunidad, pero es necesario hacerlo con los ojos abiertos y no cegados por el «oh, miren el brillante juguete nuevo» efecto.

    • Seguro de Kris, me di cuenta de que, en este caso particular, puedo pagar ese precio. Gracias.
    • Si el juguete obtiene suspendido, él siempre puede mover los datos a un RDBMS:)
  5. 0

    Lucene es una establecida y estable del producto. Por desgracia, el mismo no es todavía verdadero de MongoDB. Así que yo creo que Lucene, además de un RDBMS es mucho menos arriesgada.

    De curso, que en cierta medida depende de la naturaleza del proyecto: lo importante es «muy importante (y grandes)»? La otra cosa es, ¿tiene experiencia previa de MongoDB (supongo que no)? Si usted puede conseguir el acceso a las personas que tienen un poco de experiencia, a continuación, que podrían reducir el riesgo.

  6. -1

    De búsqueda de texto de soluciones, he utilizado Lucene & Esfinge antes, pero que no son buenas para obtener los mejores resultados para el adaptador de palabra clave. Así que he usado mongodb de búsqueda de texto de plugin MongoLantern, que es muy bueno en eso. Por otra parte, en términos de rendimiento es el uso de MongoDB como base de motor, así que no hay problemas de rendimiento en todos. a la espera de más opiniones en términos de Producción de usabilidad de MongoLantern.

    https://sourceforge.net/projects/mongolantern/

    • En serio! Dudo mucho que Lucene (particularmente Solr) no es un buen ajuste para la palabra clave de recuperación por no hablar de su escrito en Java no mucho más lento de PHP. MongoLantern incluso no hacer faceta de contar.

Dejar respuesta

Please enter your comment!
Please enter your name here