java - sintaxis - ¿Situaciones para preferir a Apache Lucene sobre Solr?
lucene tutorial (5)
Aquí hay una situación en la que tengo que usar a Lucene.
Dado un conjunto de documentos, averigüe los términos más comunes en ellos.
Aquí, necesito acceder a los vectores de términos de cada documento (usando las API de bajo nivel de TermVectorMapper). Con Lucene es bastante fácil.
Otro caso de uso es para pedidos muy especializados de resultados de búsqueda. Por ejemplo, quiero que la búsqueda de un nombre de autor (que ha escrito varios libros) resulte en un libro de cada tienda en los primeros 10 resultados. En este caso, encontraré los resultados de cada librería y, para mostrar los resultados finales, escogeré un resultado de cada librería. Aquí básicamente estás haciendo búsquedas múltiples para generar resultados finales. Tener acceso a las API de bajo nivel de lucene definitivamente ayuda.
Una razón más para apostar por Lucene era conseguir nuevos productos lo antes posible. Esto ya no es cierto ya que ambos se han fusionado y habrá versiones sincrónicas.
Hay varias ventajas de usar Solr 1.4 (búsqueda facetada, agrupación, replicación, administración http vs. luke, ...).
Incluso si incorporo una funcionalidad de búsqueda en mi aplicación Java, podría usar SolrJ para evitar el intercambio de HTTP al usar Solr. ¿Se recomienda SolrJ?
Entonces, ¿cuándo recomendarías usar "Lucene puro"? ¿Tiene un mejor rendimiento o requiere menos RAM? ¿Es mejor la unidad comprobable?
PD: Soy consciente de esta pregunta .
Me sorprende que nadie haya mencionado NRT - Búsqueda en tiempo casi real, disponible con Lucene, pero no con Solr (todavía).
Si desea integrar completamente la funcionalidad de búsqueda dentro de su aplicación y no desea mantener un proceso separado como Solr, probablemente es preferible utilizar Lucene. Por ejemplo, una aplicación de escritorio puede necesitar alguna funcionalidad de búsqueda (como el IDE de Eclipse que usa Lucene para buscar su documentación). Probablemente no desee que este tipo de aplicación inicie un proceso pesado como Solr.
Si tiene una aplicación web, use Solr. He intentado integrar ambas, y Solr es más fácil. De lo contrario, si no necesita las funciones de Solr (la búsqueda facetada es la que más le viene a la mente), entonces use Lucene.
Use Solr si está más preocupado por la escalabilidad que por el rendimiento y use Lucene si está más preocupado por el desempeño que por la escalabilidad.