使用自定义索引进行Sitecore搜索

时间:2013-03-23 02:16:03

标签: search indexing sitecore sitecore6

我正在尝试使用Sitecore搜索和自定义索引来过滤和搜索项目。

这些商品是产品评论,并且都存储在一个带有ProductReview模板的文件夹中。

+ Reviews
    - Sample Review 1
    - Sample Review 2
    - Sample Review 3

用户将能够按类别,子类别过滤项目并按产品名称进行搜索。因此表单看起来与此类似:

Category:     [ Drop Down ]
Sub Category: [ Drop Down ]
Product name: [ Single line of Text ]

[ Search Button ]

我发现定义索引的文档很薄。我正在尝试使用以下属性设置索引。

  • 索引网络数据库
  • 它应该只包括那三个字段,因为它们都是我需要的
  • 只有基于评论模板的项目才会被编入索引
  • 这两个类别字段不需要标记
  • 您可以过滤类别字段

我不确定我是否需要自定义分析器或DatabaseCrawler,而我根本没有考虑制作一个。

这是我到目前为止所做的,但是我还没有制作出工作指数:

<index id="reviews" type="Sitecore.Search.Index, Sitecore.Kernel">

    <param desc="name">$(id)</param>
    <param desc="folder">reviews</param>
    <Analyzer ref="search/analyzer" />

    <include hint="list:IncludeField">
        <!-- Category -->
        <fieldId>Category</fieldId>

        <!-- Sub Category -->
        <fieldId>Sub Category</fieldId>

        <!-- Product Name -->
        <fieldId>Product Name</fieldId>

    </include>

    <locations hint="list:AddCrawler">
        <web type="Sitecore.Search.Crawlers.DatabaseCrawler, Sitecore.Kernel">
            <Database>web</Database>

            <!-- {GUID} -->
            <Root>{GUID}</Root>

            <Tags>web reviews</Tags>
            <IndexAllFields>false</IndexAllFields>

            <templates hint="list:AddTemplate">

                < !-- Product Review -- >
                <reviews>Product Review</reviews>

            </templates>
        </web>
    </locations>

</index>    

任何指针都会非常感激。

修改

我正在寻找的两件主要事情是:

  • 如何索引类别字段而不对其进行标记。
  • 如何使用Lucine.net API进行过滤。

1 个答案:

答案 0 :(得分:4)

使用SitecoreSearchContrib(又名高级数据库爬虫)库可以使您在索引和搜索方面更加轻松。该库包含示例配置,可以让您更清楚地了解如何进行设置。

一些初始指针,即使您不使用SitecoreSearchContrib:

  • 您也希望索引master,以便此功能在预览模式下工作。上面的库将根据代码运行的上下文自动搜索正确的数据库。
  • 您在索引中包含的模板应该是模板GUID。
  • 您的字段包含也应该是GUID。