2011-01-19 54 views
0

我已经创建了一个索引,它将索引网站不同部分的事件项目。 该项目是在结构上的网站是这样的:Lucene.net - 如何查询数字部分提交的路径?

/Start/Section1/Events/2011/12/25/X-mas 
/Start/Section2/Events/2012/01/01/New-years-day 

这些路径都存储在该领域path在索引中。

在起始页面上,我需要概述所有不同部分的事件。 当我在一个部分中时,我只需要在该部分下放置的事件。

我添加booleanquery这样的:

QueryParser queryParser = new QueryParser("path", analyzer); 
Query query = queryParser.Parse(startPath); 
completeQuery.Add(query, BooleanClause.Occur.MUST); 

“路径”是通过自定义索引脚本添加一个字段;

中检索项目的起始页我会使用搜索我的索引:

string startPath = "/Start"; 

这所在的路径以“/启动”

启动中检索的项目为常给我的所有项目SECTION1我会用我的搜索索引:

string startPath = "/Start/Section1/Events"; 

这所在的路径以“/开始/ SECTION1 /事件”

正常启动给我的所有项目

我已经为新闻项目实施了这个解决方案,并且工作正常。对于事件项目它不。 当我搜索我的索引时,它不返回匹配。问题是最后三个文件夹名称是数字。 当我将文件夹(f.e. 2011,12,25)重命名为文本(两千,十二,二十五)时,它会返回命中。

如何获得我的索引以返回保留我的文件夹名称数字的结果?

+3

你正在使用什么类型的分析仪?这应该与`StandardAnalyzer`一起工作 – BrokenGlass 2011-01-20 03:27:10

回答

0

对于您的路径使用CharTokenizer,并且IsTokenChar(char c)对于/返回false。

这样你就可以确定你的路径的每个部分是个人Token