在Lucene中索引文件路径或URI

时间:2010-09-10 20:51:58

标签: indexing lucene lucene.net uri filepath

我在Lucene中存储的一些文档包含包含文件路径或URI的字段。如果用户的查询字词包含路径或URI段,我希望用户能够检索这些文档。

例如,如果路径是

C:\home\user\research\whitepapers\analysis\detail.txt

我希望用户能够通过查询path:whitepapers找到它。

同样,如果URI是

http://www.stackoverflow.com/questions/ask

包含uri:questions的查询会检索它。

我是否需要在这些领域使用特殊的分析仪,或者StandardAnaylzer是否可以完成这项工作?我是否需要对这些字段进行任何预处理? (例如,用空格替换正斜杠或反斜杠?)

建议欢迎!

1 个答案:

答案 0 :(得分:0)

您可以使用StandardAnalyzer。 我通过向Lucene的TestStandardAnalyzer.java添加以下函数来测试它:

public void testBackslashes() throws Exception {
  assertAnalyzesTo(a, "C:\\home\\user\\research\\whitepapers\\analysis\\detail.txt", new String[]{"c","home", "user", "research","whitepapers", "analysis", "detail.txt"});
  assertAnalyzesTo(a, "http://www.stackoverflow.com/questions/ask", new String[]{"http", "www.stackoverflow.com","questions","ask"});

}

使用Lucene 2.9.1进行单元测试。您可能希望尝试使用特定的Lucene发行版。我想它会做你想要的,同时保持域名和文件名不受破坏。我是否提到我喜欢单元测试?