使用Sitecore高级数据库爬虫将索引作为数字字段

使用Sitecore高级数据库爬虫将索引作为数字字段,sitecore,lucene.net,lucene,Sitecore,Lucene.net,Lucene,我需要使用lucene范围查询搜索价格字段。然而,它给出的结果并不准确或一致,因为我在Lucene.NETAPI中使用了TermRangeQuery。我相信使用NumericRangeQuery可以得到准确的结果。要使用NumericRangeQuery,需要使用NumericField为字段编制索引。有没有一种方法,我可以做到这一点与先进的数据库爬虫。 我试图通过修改高级数据库爬虫源代码来做到这一点,但它对我不起作用 这些是我在AdvancedDatabaseCrawler中所做的更改。在Cr

我需要使用lucene范围查询搜索价格字段。然而,它给出的结果并不准确或一致,因为我在Lucene.NETAPI中使用了TermRangeQuery。我相信使用NumericRangeQuery可以得到准确的结果。要使用NumericRangeQuery,需要使用NumericField为字段编制索引。有没有一种方法,我可以做到这一点与先进的数据库爬虫。 我试图通过修改高级数据库爬虫源代码来做到这一点,但它对我不起作用

这些是我在AdvancedDatabaseCrawler中所做的更改。在CreateField方法中的scSearchContrib.Crawler.Crawlers.AdvancedDatabaseCrawler类中,我添加了以下代码

if (name.EndsWith("numeric"))
{
    field = new NumericField(name, storageType, true);
}
在索引配置中,我给出了字段名,并在其后面添加了文本“numeric”。但是,通过删除“数字”部分,我正确地传递了字段名

当建立索引时,我会遇到这样的错误

Job started: RebuildSearchIndex|System.NullReferenceException: Object reference not set to an instance of an object.
   at Lucene.Net.Store.IndexOutput.WriteString(String s)
   at Lucene.Net.Index.FieldsWriter.WriteField(FieldInfo fi, Fieldable field)
   at Lucene.Net.Index.StoredFieldsWriterPerThread.AddField(Fieldable field, FieldInfo fieldInfo)
   at Lucene.Net.Index.DocFieldProcessorPerThread.ProcessDocument()
   at Lucene.Net.Index.DocumentsWriter.UpdateDocument(Document doc, Analyzer analyzer, Term delTerm)
   at Lucene.Net.Index.DocumentsWriter.AddDocument(Document doc, Analyzer analyzer)
   at Lucene.Net.Index.IndexWriter.AddDocument(Document doc, Analyzer analyzer)
   at Lucene.Net.Index.IndexWriter.AddDocument(Document doc)
   at Sitecore.Search.IndexUpdateContext.AddDocument(Document document)
   at Sitecore.Search.Crawlers.DatabaseCrawler.AddItem(Item item, IndexUpdateContext context)
   at Sitecore.Search.Crawlers.DatabaseCrawler.AddTree(Item root, IndexUpdateContext context)
   at Sitecore.Search.Crawlers.DatabaseCrawler.AddTree(Item root, IndexUpdateContext context)
   at Sitecore.Search.Crawlers.DatabaseCrawler.AddTree(Item root, IndexUpdateContext context)
   at Sitecore.Search.Index.Rebuild()
   at Sitecore.Shell.Applications.Search.RebuildSearchIndex.RebuildSearchIndexForm.Builder.Build()|Job ended: RebuildSearchIndex (units processed: 1)
有人能告诉我一种使用高级数据库爬虫的方法吗


提前感谢

尽管我无法索引数字字段,但找到了解决问题的方法。它是用填充的零进行索引,以便lucene TermRangeQuery提供正确的搜索结果。每个价格都用填充的零进行索引,因此每个值将包含10位数字。这样,我得到的结果是准确的。

请包括您尝试对高级数据库爬虫的修改,以及发生情况的详细信息(引发异常、结果没有更改等)