我是新手lucene用户,现在尝试获得一些基础知识。
我有三个文件:
apache_empty.txt
(空档案),apache.txt
(包含许多'apache'
令牌),other.txt
(仅包含一个令牌 - 'apache'
)当我尝试搜索'apache'
时,我的结果只有 apache.txt
和other.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索引也是文件名?
答案 0 :(得分:6)
要启用通配符,您应该搜索apache*
,其中也会匹配您的文件名apache_empty
以获取完整语法,另请参阅Apache Lucene Query Parser。
另一种方法是在使用过的分析仪中将下划线作为单词分隔符。