he visto muchas preguntas (y respuestas buenas) que comparan la escalabilidad, velocidad, y escenarios de despliegue para elasticsearch y Solr, pero me parece que no puede encontrar buena información sobre las diferencias o las fortalezas relativas de cómo las consultas pueden funcionar con los datos indexados.elasticsearch vs Solr respecto a la estructura de datos/consulta cuenta con
Específicamente, estoy interesado en las diferencias entre elasticsearch y Solr en las siguientes áreas:
capacidades de facetado: cómo hacer su manejo de las facetas son diferentes, o son básicamente los mismos?
manejo esquema: Parece que tiene un borde elasticsearch flexibilidad en los esquemas que se puede definir sobre la marcha a través de la API de descanso, mientras que Solr les obliga a ser pre-definido en schemas.xml (no he visto confirmación específica de esta diferencia, sin embargo). ¿Existen diferencias sustantivas en cómo se usan los esquemas más allá de eso?
filtros de indexación: ¿Hay diferencias entre cómo se pueden optimizar los datos para búsquedas específicas? p.ej. Yo he visto mención de cosas como la duplicación de campo y los filtros de consulta para la tokenización Solr que añadir a personalización del algoritmo de búsqueda, pero no he visto mucha información del mismo tipo con respecto elasticsearch, pero tal vez sólo se ocupa de todas estas cosas de forma automática?
consulta expresividad: son los DSL consulta básicamente igual de expresivo como los demás, o hay diferencias fundamentales?
"boost" y/o personalización de resultados: ¿qué servicios hay para la codificación o el masaje de los resultados de búsqueda algorítmicos?
Una vez más, tenga en cuenta que no estoy en absoluto interesado en cuestiones de velocidad/scalbility/performace, sólo la expresividad del lenguaje de estructuración de datos de búsqueda y consulta - Posiblemente toda esta cuestión se podría resumir en: ¿Hay alguna búsqueda que pueda realizar o una estructura de datos que pueda crear en elasticsearch que no pueda replicar en Solr, o viceversa?
re # 5: Leí en alguna parte que en Solr puedes hacer un análisis final del algoritmo de búsqueda, es decir, puedes "arreglar" los resultados de búsqueda sin cambiar el término ponderación. Entonces, por ejemplo, podría decir que desea que un determinado documento sea el primer resultado siempre que la consulta contenga un término específico, aunque el algoritmo de búsqueda normalmente no devolvería ese documento. Sin embargo, nunca encontré información sobre cómo lograrlo. –
hmmh, no estoy seguro de eso. Pero el aumento en general puede hacerse al indexar y consultar. ¿Quieres decir esto? Ver p. esta última entrada en la discusión de ES: http://groups.google.com/group/elasticsearch/browse_thread/thread/f9d0ebdd0225243c# – Karussell
y aquí hay un doc de solr http://wiki.apache.org/solr/FunctionQuery por cierto: en ES la funcionalidad de scripting es más avanzada IMO para impulsar: http://www.elasticsearch.org/guide/reference/query-dsl/custom-score-query.html – Karussell