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

时间:2012-10-25 19:04:32

标签: lucene indexing sitecore

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

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

3 个答案:

答案 0 :(得分:5)

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

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

设置自己的搜索索引非常简单..虽然需要对web.config进行一些调整(我建议添加为.include文件)。

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

enter image description here

..接下来,您可以告诉抓取工具要查看哪个数据库(如果您希望将未发布的内容编入索引,则最有可能master,或者对于已发布的内容,web)以及从哪里开始搜索(在这个例子中,我只索引新闻部分)。您可以tagboost并告知是否IndexAllFields(否则它只会将其理解的字段编入文本..富文本/多行文本/文本等)。< / p>

enter image description here

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

enter image description here

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

enter image description here

有关查询语法的更深入信息&amp;可以找到索引here on SDN

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

希望这会有所帮助:D

答案 1 :(得分:1)

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

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

此外,您可能希望查看AdvancedDatabaseCrawler put together by Alex Shybaa few blogs out there有一些很好的帖子来实现这个lucene索引模块。

答案 2 :(得分:1)

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

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

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