Lucene:如何索引文件名

时间:2012-09-26 10:59:01

标签: java lucene

我是新手lucene用户,现在尝试获得一些基础知识。

我有三个文件:

  • apache_empty.txt(空档案),
  • apache.txt(包含许多'apache'令牌),
  • other.txt(仅包含一个令牌 - 'apache'

当我尝试搜索'apache'时,我的结果只有 apache.txtother.txt,但我想得到apache_empty.txt个文件,其名称中包含搜索词......

这就是我如何向索引添加文档:

protected Document getDocument(File f) throws Exception 
{
  Document doc   = new Document();
  Field contents = new Field("contents", new FileReader(f));
  Field parent   = new Field("parent",   f.getParent(), Field.Store.YES, Field.Index.NOT_ANALYZED);
  Field filename = new Field("filename", f.getName(), Field.Store.YES, Field.Index.ANALYZED);
  Field fullpath = new Field("fullpath", f.getCanonicalPath(), Field.Store.YES, Field.Index.NOT_ANALYZED);
  filename.setBoost(2.0F);
  doc.add(contents);
  doc.add(parent);
  doc.add(filename);
  doc.add(fullpath);
  return doc;
}

如何让lucene索引也是文件名?

1 个答案:

答案 0 :(得分:6)

要启用通配符,您应该搜索apache*,其中也会匹配您的文件名apache_empty以获取完整语法,另请参阅Apache Lucene Query Parser

另一种方法是在使用过的分析仪中将下划线作为单词分隔符。