用于自定义查询的Sitecore系统Lucene索引

用于自定义查询的Sitecore系统Lucene索引,lucene,indexing,sitecore,Lucene,Indexing,Sitecore,我一直在网站的某些部分使用Sitecore查询和快速查询。但随着内容的增长,这些查询变得越来越慢,我想实现Lucene内容查询以加快速度 我想知道我是否可以只使用系统索引,而不必设置单独的索引。Sitecore是否默认索引内容编辑器中的所有内容?这是一个好方法还是我应该创建自己的索引?您将希望实现自己的索引。因为同样的原因,当有很多内容时,你会看到事情变慢,当有很多内容时,索引也会变慢 我更喜欢专门用来驱动我需要的功能的目标索引,而且索引中只包含所需的数据。这允许在组件上使用更小、更高效的索引

我一直在网站的某些部分使用Sitecore查询和快速查询。但随着内容的增长,这些查询变得越来越慢,我想实现Lucene内容查询以加快速度


我想知道我是否可以只使用系统索引,而不必设置单独的索引。Sitecore是否默认索引内容编辑器中的所有内容?这是一个好方法还是我应该创建自己的索引?

您将希望实现自己的索引。因为同样的原因,当有很多内容时,你会看到事情变慢,当有很多内容时,索引也会变慢

我更喜欢专门用来驱动我需要的功能的目标索引,而且索引中只包含所需的数据。这允许在组件上使用更小、更高效的索引

此外,您可能还想研究一下。关于实现这个lucene索引模块,这里有一些很棒的帖子。

(我假设您使用的是Sitecore 6.4->6.6)

和一切一样。。视情况而定。。Sitecore在其系统索引中保留所有Sitecore项目的索引,欢迎您使用该索引。有时,您可能需要一个更专业或更受限制的项目列表,例如基于某个模板、索引或需要一个复选框字段索引(系统默认情况下仅索引
文本
字段)

设置自己的搜索索引非常简单。。不过,它确实需要对web.config进行一些修改(我建议将其添加为
.include
文件)

使用自己的
id
创建一个新的
节点,该节点将定义集合的名称及其将进入的文件夹。(您可以通过在安装的
/data/index
目录中查找目录来检查其工作情况

…接下来,您可以告诉爬虫程序要查看哪个数据库(如果您希望对未发布的内容进行索引,则最有可能是
master
,或
web
以查找已发布的内容),以及从何处开始搜索(在本例中,我仅对新闻部分进行索引)。您可以
标记
增强
,并判断是否
索引所有字段
(否则它将只索引它理解为文本的字段..富文本/多行文本/文本等)

…最后,您可以告诉索引器要包括或排除哪些模板类型

索引器的工作原理是它将订阅sitecore中的项目事件。因此,每次更改、移动或删除项目时,索引都将自动更新。显然,如果要为
web
db编制索引,则项目必须已发布

可以找到有关查询语法和索引的更深入的信息

搜索语法和API在6.4/6.5中有了很大的改进,但是如果你想增加额外的功能,那么我的同事Alex Shyba的也值得一看


希望这有帮助:D

单独的索引始终是一个明智的决定,您可以保持它的轻量级。在大环境中,系统索引可以增长到千兆字节

您可以从索引中排除内容,因为您将只使用它执行查找,而不显示索引中的内容


最后:系统索引用于主数据库,您将查询web数据库,可能是在内容交付服务器上。

我读了一些Alex Shyba编写的AdvancedDatabaseCrawler,特别是它处理某些字段(包括日期)的方式。您建议这样做吗?我认为设置与你所描述的只是他写的一些代码可能有点不同。高级爬虫有一系列的调整和便利,使搜索更容易使用,并填补了原始实现中的一些漏洞。其中一些工作是作为6.4/6.5 API刷新的一部分进行的,并将继续得到改进在以后的版本中会更好。我知道很多客户都在使用它,并且与它相处得很好。我认为如果你不能从标准搜索中得到你想要的东西,这是最好的选择!很棒的文档。谢谢!