根据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 Query中可用的谓词.谓词总是嵌在方括号中.
Example: fast:/sitecore/content/Home/*[@Title = 'Welcome to Sitecore']
Run Code Online (Sandbox Code Playgroud)
结果:返回将"标题"字段的值设置为"欢迎使用Sitecore"的项目.搜索在Home Item的子项中执行.
Mar*_*ino 12
从Sitecore查询项目有几种不同的方法:
每种方法都有自己的优点和缺点.例如,Sitecore Query和Fast Query都可以限制他们可以返回的项目数.此限制是在中的Query.MaxItems设置web.config.另一方面,Lucene是它自己的野兽,使用存储在磁盘上的搜索索引来访问项目.
Sitecore查询在查询中过滤项目方面是最灵活的,但是查询越复杂,运行所需的时间就越长(这是一种推广).通常更容易制作更通用的查询,然后使用.NET来过滤它,就像LINQ一样.快速查询直接进入数据库进行查询,因此对过滤有限制.它的运行速度更快,但您不能像查询查询中那样精确.
Lucene是另一种方法,因为它使用搜索索引来查询内容和过滤.这需要预先进行额外的配置工作并维护搜索索引.
这可以帮助您决定采取哪种方法:
我之前也写了关于同一主题的博文:
| 归档时间: |
|
| 查看次数: |
2170 次 |
| 最近记录: |