¿Cuál es la mejor manera de lograr la indexación en tiempo real de Lucene?Lucene indexación en tiempo real?
Respuesta
Obtenga un lector de índice del escritor de índice.
Actualización: Parece que el método actual es el objeto open a directory reader using an index writer.
¿Cómo va a ayudar esto con la indexación en tiempo real? – Mikos
Al permitir búsquedas para encontrar documentos antes de un punto de confirmación. El lector obtenido del escritor se actualiza continuamente a medida que se agregan los documentos. –
Al intentar hacer IndexReader reader = indexWriter.getReader(); El método getReader() del tipo IndexWriter no está visible. http://lucene.apache.org/core/4_7_2/core/org/apache/lucene/index/IndexWriter.html?is-external=true –
Try Zoie
Zoie tiene una promesa, sin embargo, he encontrado que la documentación y el código de muestras carecen severamente. Además, con Zoie, la indexación es rápida si los documentos a indexar están agrupados, pero la indexación de algunos documentos a la vez es extremadamente lenta. Personalmente, he encontrado que Lucene sin procesar es una API más fácil de usar. –
El wiki de Lucene tiene alguna información: http://wiki.apache.org/lucene-java/NearRealtimeSearch
Lucene tiene una función llamada búsqueda casi en tiempo real para abordar exactamente esta necesidad.
Requiere que su IndexReader esté en la misma JVM que su IndexWriter.
Realiza cambios con IndexWriter, y luego abre un lector directamente desde el escritor usando IndexReader.open (escritor), o en versiones anteriores de Lucene writer.getReader(). Esta llamada normalmente será muy rápida (en proporción a la cantidad de cambios que haya realizado desde la última apertura de un lector) ya que omite la costosa confirmación normalmente requerida para abrir un lector. Es capaz de buscar los cambios no comprometidos en el escritor.
Este lector sigue buscando una instantánea de punto en el tiempo del autor, es decir, todos los cambios desde el momento de su apertura.
- 1. Bigramas del token de indexación en Lucene
- 2. Fecha de indexación y búsqueda en Lucene
- 3. Mejore la indexación de subprocesos múltiples con lucene
- 4. Indexación de diferentes tipos de entidades/objetos con Solr Lucene
- 5. Interoperabilidad Java en tiempo real
- 6. node.js juego en tiempo real
- 7. Tiempo real y php?
- 8. Mostrando tiempo real
- 9. ¿La mejor manera de mantener el índice en tiempo real?
- 10. MongoDb Transmisión de datos insertados en tiempo real (o casi en tiempo real)
- 11. Gráfico en tiempo real en MATLAB
- 12. Gráficos en tiempo real en Java
- 13. Colaboración en tiempo real en Eclipse
- 14. Seguimiento en tiempo real en el Iphone
- 15. programación en tiempo real en Linux
- 16. ¿Grabar audio en tiempo real en java?
- 17. indexación y búsqueda capas de anotaciones sobre palabra de nivel en Lucene
- 18. Tiempo real gráfico de datos
- 19. Lo que constituye 'tiempo real'
- 20. tiempo de ejecución "real" límite
- 21. ¿Por qué Erlang es adecuado para aplicaciones suaves en tiempo real, pero no para tiempo real?
- 22. Decode androide usando ffmpeg en tiempo real
- 23. de Java en tiempo real depuración (juegos)
- 24. Android: procesamiento de imágenes en tiempo real
- 25. cómo descargar jwplayer video en tiempo real?
- 26. en tiempo real de vídeo (imagen) cosiendo
- 27. Biblioteca FEM para aplicaciones en tiempo real
- 28. Salida en tiempo real de NSTask
- 29. Desinfección en tiempo real del código C
- 30. Edición colaborativa en tiempo real: ¿cómo funciona?
Indización en tiempo real de qué? ¿Podría explicar un poco más lo que está buscando? –
Después de haber pasado dos años trabajando en esto de vez en cuando a solas, tengo que decir: solr no es la plataforma adecuada cuando se trata de la indexación en tiempo real. Los commits son muy pesados en índices grandes. He oído hablar de grandes instalaciones que apenas pueden administrar 1 commit por hora. Una vez dicho esto, un proyecto reciente llamado Lucandra puede ser prometedor: no puedo encontrar ningún documento ahora, pero creí haber escuchado algo sobre la necesidad de comprometerme. http://github.com/tjake/Lucandra#readme –
Tiene que explicar más: no hay un significado específico para "tiempo real": como mínimo debe especificar qué retraso sería aceptable. En tiempo real suave (por ejemplo, tarda de 5 a 10 segundos para que se muestren las actualizaciones) no es difícil, por ejemplo, para los índices no grandes. – StaxMan