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

Sitecore是否自动使用快速查询?,sitecore,Sitecore,根据Sitecore数据定义参考第6.4版第4.3.1节: Sitecore使用 快速技术是可能的。这可能 如果 数据提供程序支持请求的 查询,或在Sitecore数据中 经理 如果是这样,使用“fast:”语法有什么好处吗?自动技术选择是通过什么版本引入的 更新 我想我明白了。Reqular Sitecore查询只有在没有谓词时才能使用SQL Server。快速查询允许使用简单的谓词(例如.[@somefield='somevalue']),同时仍然使用SQL Server 来自Sitecor

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

Sitecore使用 快速技术是可能的。这可能 如果 数据提供程序支持请求的 查询,或在Sitecore数据中 经理

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

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

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

SQL Server数据提供程序不支持 支持谓词( 用正方形括起来的搜索字符串 括号:[@IsHidden!=“1'])

从使用Sitecore快速查询的Sitecore CMS 6(第4.2节):

本节介绍谓词 Sitecore Fast中提供的 查询谓词是 始终嵌入方括号中

结果:返回“Title”字段值设置为“Welcome to Sitecore”的项目。这个 在主项的子项中执行搜索


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

  • Sitecore查询
  • 快速查询
  • 卢塞恩
每种方法都有其优缺点。例如,Sitecore查询和Fast查询对它们可以返回的项目数量都有限制。此限制是
web.config
中的
Query.MaxItems
设置。另一方面,Lucene是它自己的beast,它使用存储在磁盘上的搜索索引来访问项目

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

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

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

  • 100项或更少:Sitecore查询
  • 1000项或以下:快速查询
  • 1000多件物品:Lucene
我以前也写过关于这个话题的博客:


感谢您提供的信息,这很有帮助。在我的问题中,我试图了解的要点是Sitecore对Sitecore查询的优化是什么,以及这些优化与快速查询的区别。不确定您所说的优化是什么意思。你是在说Sitecore API做什么,还是Sitecore的开发者做什么?它归结为这样一个事实:快速查询更快,因为它直接进入数据库,但在查询中提供的功能更少。基本上,可以这样想:如果您有一个非常通用的查询,而不需要复杂,那么如果您可以使用快速查询使其更快,为什么还要为Sitecore查询费心呢?对于非常复杂的查询,您可能只需要满足Sitecore查询。大多数查询都应该被快速的大数据集查询所覆盖,并且应该使用Lucene。根据数据定义参考,Sitecore使用“尽可能快的技术”处理问题。如果是这样,Sitecore何时需要“快”来访问数据库?我一直在寻找有关Sitecore何时可以在没有Fast提示的情况下执行数据库查询以及何时需要该提示的详细信息。我还想添加该查询返回的项目在内容树中的显示顺序,但使用Fast查询时并非如此。
Example: fast:/sitecore/content/Home/*[@Title = 'Welcome to Sitecore']