2012-10-25 40 views
0

我一直在使用Sitecore查询和FAST查询网站的某些部分。但随着越来越多的内容这些查询变得缓慢,我想实施Lucene查询内容加速事情。Sitecore系统Lucene自定义查询索引

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

回答

5

(我要去你的使用Sitecore的6.4-> 6.6的假设)

与一切..它取决于.. Sitecore的保持在其系统中所有索引Sitecore的项目的索引,欢迎您来使用它。有时候你可能想要一个更专门或限制的项目列表,比如基于某个模板,被索引或者需要一个复选框字段索引(因为系统默认仅索引text字段)。

设置您自己的搜索索引非常容易..它确实需要一些与web.config的摆弄(并且我建议添加为.include文件)。

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

enter image description here

。接下来你可以告诉履带的(最有可能master看哪个数据库,如果你想要未发布内容被索引或web为已发布的东西)和从哪里开始搜索(在这个例子中,我只索引新闻部分)。您可以tag,boost并告诉是否要IndexAllFields(否则它只会索引它理解为的字段文本..富文本/多行文本/文本等)。

enter image description here

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

enter image description here

索引器的工作原理是,将这样的项目被更改或移动或删除索引将自动更新每次订阅Sitecore的内项事件..。很明显,如果你正在索引web分贝,这些项目将需要发布。

enter image description here

更深入的查询语法&索引信息可以发现here on SDN

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

希望这有助于:d

+0

我读过一些关于Alex Shyba写的AdvancedDatabaseCrawler,尤其是关于它处理一些字段(包括日期)的方式。你会推荐吗?我认为该设置与您所描述的完全相似,只是他编写的一些代码可能会有所不同。 – Gabbar

+1

高级爬虫有一大堆的调整和便利,使搜索更容易处理和填补原始实施中的一些漏洞。其中一些工作是作为6.4/6.5的API刷新的一部分,并将在后续版本中继续变得更好。我知道很多使用这种技术的客户,并且与他们相处得很好。我想如果你不能从标准搜索中得到你想要的东西,这就是要走的路! –

+0

令人敬畏的文档。谢谢! –

1

你会想要实现自己的索引。出于同样的原因,当内容很多时,你会看到事物减速,当内容很多时,索引也会减速。

我更喜欢目标指标,专门用于驱动我需要的功能,并且只包含需要的数据。这样可以在组件上实现更小,更高效的索引使用。你可能想看看AdvancedDatabaseCrawler put together by Alex Shyba。有a few blogs out there在实现这个lucene索引模块的一些很棒的帖子。

1

单独的索引始终是一个明智的决定,你可以把它的光。在大环境下,系统索引可以增长到千兆字节。

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

最后:系统索引是针对主数据库的,您可能会在内容交付服务器上查询Web数据库。