2013-03-23 115 views
1

我正在尝试使用具有自定义索引的Sitecore搜索来过滤和搜索项目。带自定义索引的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 ] 

我在找到用于定义索引的文档很细。我试图设置具有以下属性的索引。

  • 索引Web数据库
  • 应该只包括三个字段,因为他们是我的一切需要根据审查模板会被索引
  • 只有项目
  • 两个类别字段唐“T需要被标记化
  • 您可以在类别字段筛选

我不知道如果我需要一个定制的分析器或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进行过滤。
+0

对于初学者,您希望Sitecore Index Viewer应用程序检查并重建索引。 http://marketplace.sitecore.net/en/Modules/Index_Viewer。aspx 此外,它可能有助于开始让“IndexAllFields”节点设置为true,然后使用Review文件夹的ID填充 {GUID}。 – 2013-03-23 04:27:48

+0

@patrickmjones,但不会允许过滤? – 2013-03-25 03:33:49

+1

你能通过过滤来进一步描述你的意思吗?你只是在寻找如何查询这些领域?您是否正在使用Lucene API,Sitecore.Search API或SitecoreSearchContrib API直接执行此操作? – techphoria414 2013-03-26 00:11:41

回答

4

使用SitecoreSearchContrib(又名高级数据库抓取程序)库将使您在索引和搜索中更加轻松。该库包含示例配置,这将使您更清楚应该如何设置。

一些初步的指针,即使你不使用SitecoreSearchContrib:

  • 你要掌握指数一样,所以这个功能在预览模式下工作。上述库将根据代码运行的上下文自动搜索正确的数据库。
  • 您的模板在索引中的包含应该是模板GUID。
  • 你的字段包含也应该是GUID。
+0

+1 - 不知道高级数据库抓取工具已重新命名。 – 2013-03-24 07:36:53

+0

你可以进一步了解过滤的细节吗?你有没有用lucene.net API过滤的例子? – 2013-03-25 05:59:29

+0

你的意思是除了添加过滤器作为查询条件?你能通过编辑你的问题来明确你想要什么吗?你想使用Sitecore.Search或SitecoreSearchContrib API的expamples? – techphoria414 2013-03-25 17:00:41