我正在尝试使用带有自定义索引的 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 进行过滤。