0

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

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

4

3 回答 3

5

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

与所有内容一样 .. 这取决于 .. Sitecore 在其系统索引中保留了所有 Sitecore 项目的索引,欢迎您使用它。有时您可能需要更专业或受限制的项目列表,例如基于某个模板、被索引或需要索引复选框字段(因为系统默认情况下仅索引text字段)。

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

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

在此处输入图像描述

.. 接下来,您可以告诉爬虫查看哪个数据库(master如果您希望对未发布的内容或已发布的内容进行索引,则很可能web)以及从何处开始搜索(在此示例中,我仅索引新闻部分)。你可以tagboost并告诉是否要IndexAllFields(否则它只会索引它理解为文本的字段..富文本/多行文本/文本等)。

在此处输入图像描述

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

在此处输入图像描述

索引器的工作原理是它将订阅 sitecore 中的项目事件 .. 所以每次更改、移动或删除项目时,索引都会自动更新。显然,如果您正在索引web数据库,则需要发布这些项目。

在此处输入图像描述

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

搜索语法和 API 在 6.4/6.5 中得到了很大改进,但如果您想增加额外的功能,那么我的同事 Alex Shyba 的Advanced Database Crawler也值得一试。

希望这会有所帮助:D

于 2012-10-25T20:19:09.053 回答
1

您将要实现自己的索引。出于同样的原因,当有很多内容时,您会看到事情变慢,当其中有很多内容时,索引也会变慢。

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

此外,您可能想查看由 Alex Shyba 组合的 AdvancedDatabaseCrawler。有一些博客有一些关于实现这个 lucene 索引模块的好文章。

于 2012-10-25T20:12:55.150 回答
1

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

您可以从索引中排除内容,因为您只会将其用于执行查找,而不是显示索引中的内容。

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

于 2012-10-26T09:11:48.307 回答