viral trata que moto hoy solr full-text-search real-time lucene

solr - trata - video viral de la moto



Pocas preguntas sobre Solr. Transacciones y búsqueda en tiempo real (1)

La funcionalidad que está solicitando se conoce como Near Realtime Search también conocida como NRT. El trabajo en NRT todavía está en progreso, pero ha habido excelentes mejoras incrementales a este soporte en Solr durante los últimos años. Consulte los siguientes enlaces para obtener más información sobre el soporte actual (versiones 1.4 - 3.5) y futuro (ver 4.0) para NRT.

Opciones de NRT

Tengo una aplicación heldesk en PHP / MySQL. Quiero implementar la búsqueda de texto completo en tiempo real y tengo Solr preseleccionado. La base de datos MySQL almacenará todos los datos y los datos requeridos para la búsqueda serán importados para construir el índice Solr. Todas las solicitudes de búsqueda serán manejadas por Solr.

Lo que quiero es

  • Búsqueda en tiempo real En el momento en que alguien actualiza un ticket, debe estar disponible para la búsqueda.
  • Si varias personas actualizan el ticket de manera simultánea, Solr debería ser capaz de manejar los commits

Según mi comprensión de Solr, así es como creo que funcionará el sistema. Un usuario actualiza un ticket -> registros de la base de datos correspondiente modificados -> se envía una solicitud al servidor Solr para modificar el documento correspondiente en el índice.

He leído un libro sobre Solr y las siguientes preguntas me preocupan.

  1. El libro menciona que

    "las confirmaciones son lentas en Solr. Dependiendo del tamaño del índice, la configuración de autocalentamiento de Solr y el estado de caché de Solr antes de la confirmación, una confirmación puede tomar una cantidad de tiempo no trivial. Típicamente, lleva unos segundos, pero puede tomar algunos minutos en casos extremos "

    Si esto es cierto, ¿cómo sabré cuándo estarán disponibles los datos para la búsqueda y cómo puedo implementar la búsqueda en tiempo real? Incluso si toma unos segundos, no puede ser en tiempo real. Además, no quiero que se ralentice la operación de actualización de tickets (agregando un paso adicional para actualizar el índice de Solr)

  2. También se menciona que

    "no hay aislamiento de transacción. Esto significa que si más de un cliente de Solr enviara modificaciones y las confirmara en momentos superpuestos, es posible que parte del conjunto de cambios de un cliente se confirme antes de que el cliente le indique a Solr que se comprometa. también se aplica a la reversión. Si esto es un problema para su arquitectura, entonces considere usar un proceso de cliente responsable de actualizar Solr ".

¿Significa eso que debido a la falta de compromisos transaccionales, Solr puede equivocarse si varias personas actualizan el ticket simultáneamente?

Ahora la pregunta que tengo ante mí es: ¿puedo lograr los dos usando Solr? Si es así, ¿cómo?

Edit1: ¡Sí! Llegué con un par de preguntas similares pero ninguna tiene una respuesta confiable. Entonces publicar de nuevo. Lo siento si lo encuentras duplicado.