Sitecore是否自动使用快速查询?

时间:2011-05-01 03:48:53

标签: sitecore

根据Sitecore数据定义参考,版本6.4,第4.3.1节:

  

Sitecore使用。处理查询   禁食技术可能。这可以   是SQL数据库,如果是   数据提供程序支持请求   查询,或Sitecore数据   管理器。

如果是这样,使用“fast:”语法有什么好处吗?什么版本的自动技术选择被引入?

更新 我想我明白了。 Reqular Sitecore查询只有在没有谓词的情况下才能使用SQL Server。快速查询允许简单谓词(例如* [@ somefield ='somevalue']),同时仍然使用SQL Server。

来自 Sitecore CMS 6.4数据定义参考(第4.3.4节):

  

SQL Server数据提供程序没有   支持谓词(部分)   搜索字符串包含在方块中   括号:[@IsHidden!='1'])。

来自 Sitecore CMS 6使用Sitecore快速查询(第4.2节):

  

本节介绍谓词   可在Sitecore Fast中获得   查询。谓词是    总是嵌在方括号中。

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

结果:返回将“标题”字段的值设置为“欢迎使用Sitecore”的项目。该   搜索是在Home Item的子项中执行的。

1 个答案:

答案 0 :(得分:12)

从Sitecore查询项目有几种不同的方法:

  • Sitecore查询
  • 快速查询
  • Lucene的

每种方法都有自己的优点和缺点。例如,Sitecore Query和Fast Query都可以限制他们可以返回的项目数。此限制是Query.MaxItems中的web.config设置。另一方面,Lucene是它自己的野兽,使用存储在磁盘上的搜索索引来访问项目。

Sitecore查询在查询中过滤项目方面是最灵活的,但是查询越复杂,运行所需的时间就越长(这是一种概括)。通常更容易制作更通用的查询,然后使用.NET来过滤它,就像LINQ一样。快速查询直接进入数据库进行查询,因此对过滤有限制。它的运行速度更快,但您不能像查询查询那样精确。

Lucene是另一种方法,因为它使用搜索索引来查询内容和过滤。这需要预先进行额外的配置工作并维护搜索索引。

这可以帮助您决定采取哪种方法:

  • 100件或更少:Sitecore查询
  • 1000件或更少:快速查询
  • 1000多件物品:Lucene

我之前也写了关于同一主题的博文: