1

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

这些项目是产品评论,并且都存储在带有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 进行过滤。
4

1 回答 1

4

使用SitecoreSearchContrib(又名高级数据库爬虫)库将使您在索引和搜索方面更容易。该库包含示例配置,这将使您更清楚应该如何设置。

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

  • 您还需要索引母版,以便此功能在预览模式下工作。上述库将根据代码运行的上下文自动搜索正确的数据库。
  • 您在索引中包含的模板应该是模板 GUID。
  • 您的字段包含也应该是 GUID。
于 2013-03-23T15:55:46.040 回答