search - tutorial - ¿Es Lucene.Net adecuado como motor de búsqueda para contenido que cambia con frecuencia?
para que sirve elastic search (2)
Los foros de salida ( http://episteme.arstechnica.com ) usan Lucene como el motor de búsqueda, por lo que es factible. Las publicaciones no se indexan con la rapidez que quisieras, pero podríamos resolverlo reforzando el hardware de indexación y utilizando una estrategia de almacenamiento en caché más inteligente.
La respuesta general a esta pregunta es: depende de cuál sea tu patrón de escritura / actualización. Los foros son relativamente fáciles, ya que la mayoría del contenido es nuevo y el contenido existente se actualiza con menos frecuencia.
Para un foro, recomendaría tener un índice de "archivo" y un índice "en vivo". El índice en vivo puede incluir publicaciones del último día, semana, año, mientras que el índice del archivo incluirá un gran número de publicaciones que probablemente nunca volverán a tocar. Entonces, cuando alguien crea una nueva publicación, inicialmente será indexada en el índice en vivo. En un momento posterior, algunos trabajos por lotes borrarían el índice en vivo y reindexarían todo en el archivo.
Lucene es muy bueno para consultar en múltiples índices. Debes abusar de esa habilidad. :)
¿Es Lucene.Net adecuado como motor de búsqueda para contenido que cambia con frecuencia?
O más específicamente, ¿alguien puede dar una opinión subjetiva sobre la rapidez con la que se pueden actualizar los índices de lucene.net? Cualquier otro enfoque para buscar contenido que cambia con frecuencia sería genial.
Estamos desarrollando un foro. Las publicaciones del foro se agregarán frecuentemente al repositorio del foro. Creemos que necesitamos que estas publicaciones se agreguen al índice de Lucene muy rápidamente (<0.5s) para estar disponibles para la búsqueda. Habrá aproximadamente 5E6 publicaciones en el repositorio inicialmente. Supongamos que el motor de búsqueda se ejecuta en un servidor no exótico (¡sé que esto es muy vago!).
Otras sugerencias con respecto a abordar el problema de la búsqueda de contenido que cambia con frecuencia se aprecian. Las publicaciones del foro deben poder buscarse en un número variable de etiquetas con nombre (el nombre y el valor de la etiqueta deben coincidir). Un enfoque basado en SQL (basado en el esquema de Toxi) no nos proporciona el rendimiento que nos gustaría.
Lucene.Net es extremadamente rápido, sin embargo, hay muchas cosas que pueden ralentizar las consultas cuando se usan incorrectamente. Recomiendo leer el libro Lucene in Action de Erik Hatcher y Otis Gospodnetić. Contiene un muy buen capítulo sobre pruebas de rendimiento y ajuste.