2010-05-25 6 views
7

Estoy usando Solr y quiero trabajar sobre un campo "grupo".¿Qué tan bien escala Solr en una gran cantidad de valores de faceta?

Como los usuarios crean "grupo", es posible que exista una gran cantidad de valores para "grupo".

  • Would Solr ser capaz de manejar un caso de uso como este? ¿O Solr no es realmente apropiado para campos de facetas con una gran cantidad de valores?

  • Entiendo que puedo establecer facet.limit para restringir el número de valores devueltos para un campo de faceta. ¿Ayudaría esto en mi caso? Supongamos que hay 100.000 valores coincidentes para "grupo" en una búsqueda, si configuro facet.limit en 50. ¿Eso agilizaría la consulta, o la consulta seguiría siendo lenta porque Solr aún necesita procesar y clasificar todas las facetas? valores y devolver los mejores 50?

  • ¿Algún consejo sobre cómo ajustar Solr para un gran número de valores de faceta?

Gracias.

Respuesta

7

Desde 1.4, solr maneja muy bien las facetas con una gran cantidad de valores, ya que usa un conteo de facetas simple por defecto. (facet.method es 'fc' por defecto).

Antes de la versión 1.4, solr usaba un método basado en filtros (enum) que es definitivamente más rápido para la facetación de atributos con un número pequeño de valores. Este método requiere un filtro por valor de faceta.

Acerca de facet.limit, considéralo una forma de navegar por el espacio de facetas (junto con facet.offset), como navegar por el espacio de resultados con filas/desplazamiento. Entonces, un valor de 10 ~ 50 es sensato.

Al igual que con las filas/desplazamiento, y debido a la naturaleza de Solr, puede esperar que el rendimiento de facet.limit/facet.offset se degrade cuando la compensación se agrande, pero debería estar perfectamente bien si se mantiene dentro de lo razonable límites.

De forma predeterminada, solr muestra primero las facetas más frecuentes.

Para resumir:

  • Uso Solr 1.4

  • Asegúrese facet.method es 'fc' (bueno, eso es el valor por defecto de todos modos).

  • Navega por tu espacio de facetas con facet.limit/facet.offset.

1

No misregard activar la caché de facetado parámetros relacionados (probar diferentes tamaños de caché para elegir los valores que se ajustan bien a su sistema):

<filterCache class="solr.FastLRUCache" size="4096" initialSize="4096" autowarmCount="4096"/> 
<queryResultCache class="solr.LRUCache" size="5000" initialSize="5000" autowarmCount="5000"/> 
Cuestiones relacionadas