根据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的子项中执行的。
答案 0 :(得分:12)
从Sitecore查询项目有几种不同的方法:
每种方法都有自己的优点和缺点。例如,Sitecore Query和Fast Query都可以限制他们可以返回的项目数。此限制是Query.MaxItems
中的web.config
设置。另一方面,Lucene是它自己的野兽,使用存储在磁盘上的搜索索引来访问项目。
Sitecore查询在查询中过滤项目方面是最灵活的,但是查询越复杂,运行所需的时间就越长(这是一种概括)。通常更容易制作更通用的查询,然后使用.NET来过滤它,就像LINQ一样。快速查询直接进入数据库进行查询,因此对过滤有限制。它的运行速度更快,但您不能像查询查询那样精确。
Lucene是另一种方法,因为它使用搜索索引来查询内容和过滤。这需要预先进行额外的配置工作并维护搜索索引。
这可以帮助您决定采取哪种方法:
我之前也写了关于同一主题的博文: