SITECORE高级数据库varler字段排除



我需要创建一个特定的索引来从继承的模板上在特定字段上执行搜索。创建索引和返回匹配结果的那一部分是相当直接的。

我遇到的问题是,当进行不适合该领域的搜索时,我会得到错误的结果,因为lucene.net文档字段'_name'包含搜索标准,并且正在考虑匹配匹配项。

我正在使用高级数据库爬网,并且在调查中已经走到了几乎所有可能的领域,直到我使用Luke发现问题为止。

如何将诸如" _name"之类的文档字段排除在可搜索中以排除这种情况不返回未打算的结果?

lucene文档具有删除场方法。在您的自定义databasecrawler中,您通常可以从文档中删除字段:

public class MyCustomCrawler : Sitecore.Search.Crawlers.DatabaseCrawler
{
        protected override void AddAllFields(Lucene.Net.Documents.Document document, Sitecore.Data.Items.Item item, bool versionSpecific)
        {
            document.RemoveField("SomeFieldName");
            ...
        }
}

在这种情况下

protected override void AddSpecialFields(Document document, Sitecore.Data.Items.Item item)
{
    // Do nothing, don't call base.AddSpecialFields
}