2011-05-01 8 views
7

De acuerdo con Sitecore definición de datos de referencia, versión 6.4, la sección 4.3.1:¿Sitecore utiliza Fast Query automáticamente?

Sitecore procesos de consultas utilizando la tecnología ayunado posible. Esto podría ser ya sea la base de datos SQL, si el proveedor de datos admite la consulta solicitada, o en el administrador de datos de Sitecore .

Si esto es así, ¿hay alguna ventaja de usar la sintaxis "rápido:"? ¿Con qué lanzamiento se introdujo la selección automática de tecnología?

Actualización Creo que lo descubrí. Las consultas Reqular Sitecore solo pueden usar SQL Server si no tienen predicados. Fast Query permite predicados simples (p. Ej. * [@ Somefield = 'somevalue']) mientras sigue usando SQL Server.

De Sitecore CMS 6.4 Definición de datos de referencia (Sección 4.3.4):

El proveedor de datos de SQL Server no predicados de apoyo (la parte de la cadena de búsqueda encerrado en cuadrados paréntesis: [@IsHidden! = '1']).

De Sitecore CMS 6 Uso de Sitecore de consulta rápida (Sección 4.2):

Esta sección describe los predicados que están disponibles en Sitecore Fast consulta. Los predicados son siempre incrustados entre corchetes.

Example: fast:/sitecore/content/Home/*[@Title = 'Welcome to Sitecore'] 

Resultado: devuelve los elementos que tienen el valor del campo 'Título' se pone a 'Bienvenido a Sitecore'. La búsqueda se realiza en los elementos secundarios del elemento de inicio.

Respuesta

12

Hay varios enfoques diferentes para artículos interrogación por Sitecore:

  • Sitecore consulta
  • de consulta rápida
  • Lucene

Cada método tiene sus propias ventajas y desventajas. Por ejemplo, Sitecore Query y Fast Query tienen un límite en la cantidad de elementos que pueden devolver. Este límite es la configuración Query.MaxItems en el web.config. Lucene, por otro lado, es su propia bestia y utiliza índices de búsqueda almacenados en el disco para acceder a los elementos.

La consulta de Sitecore es la más flexible en términos de filtrar elementos directamente en la consulta; sin embargo, cuanto más compleja sea su consulta, más tiempo tardará en ejecutarse (es una generalización). A menudo es más fácil hacer una consulta más genérica y luego usar .NET para filtrarla, como LINQ. La consulta rápida va directamente a la base de datos para realizar consultas y, por lo tanto, tiene un límite para el filtrado.Se ejecuta más rápido, pero no puede ser tan granular con lo que desea verificar en su consulta.

Lucene es otro enfoque, ya que utiliza índices de búsqueda para consultar contenido y filtrar. Esto requiere un trabajo de configuración adicional por adelantado y mantenimiento del índice de búsqueda.

Esto puede ayudar a decidir qué postura tomar:

  • 100 artículos o menos: Sitecore de consulta
  • 1000 unidades o menos rápida de consulta:
  • 1000 artículos: Lucene

También escribí anteriormente una publicación de blog sobre este mismo tema:

+0

Gracias por esta información, es útil. El punto principal que intentaba abordar en mi pregunta es qué optimizaciones hace Sitecore a las Consultas de Sitecore, y cómo estas difieren de las consultas rápidas. –

+0

No estoy seguro de lo que quiere decir con optimizaciones. ¿Estás hablando de lo que hace la API de Sitecore o de lo que hacen los desarrolladores de Sitecore? Todo se reduce al hecho de que la consulta rápida es más rápida porque va directamente a la base de datos, pero ofrece menos funciones dentro de la consulta. Básicamente, piénselo de esta manera: si tiene una consulta muy genérica que no necesita ser compleja, ¿por qué preocuparse por la consulta de Sitecore si puede hacerlo más rápido con la consulta rápida? Para consultas muy complejas, puede que necesite conformarse con la consulta de Sitecore. La mayoría de las consultas deben estar cubiertas por consultas rápidas y grandes de conjuntos de datos que deben usar Lucene. –

+0

Por optimizaciones, me refiero a lo que hace la API de Sitecore. De acuerdo con la Referencia de definición de datos, Sitecore procesa quries utilizando "la tecnología de ayuno posible". De ser así, ¿cuándo requiere Sitecore "Fast:" para acceder a la base de datos? Estaba buscando detalles sobre cuándo Sitecore puede hacer una consulta de base de datos sin la sugerencia rápida, y cuando lo requiere. –