初次进行Lucene相关开发,想要获取所有数据,但一直没有找到合适的方法,而且之前好多网络上的方法都是Lucene之前的版本,由于Lucene一直在改版,好多方法在Lucene6.1都已经弃用了,以下是我写的一个简单易懂得demo,初次接触Lucene查询的可以参考下:
public class TestMain(){
public static void main(String a[]){
String path = "/home/proplam";
Directory directory;
try{
directory = FSDirectory.open(Path.get(path));//打开索引文件夹
IndexReader reader = new DirectoryReader.open(directory);//读取目录
IndexSearcher searcher = new IndexSearcher(reader);//初始化查询组件
int count = reader.maxDoc();//所有文档数
for (int i = 0; i < count; i++){
Document doc = searcher.doc(i);
List<IndexableField> listField = doc.getFields();
for ( int j = 0;j < listField.size(); j++){
IndexableField index = listField.get(j);
System.out.println(index.getname()+":"+index.stringValue());
}
}
reader.close();
directory.close();
}catch(IOException e){
e.printStackTrace();
}
}
}
这个方法的前提是已经创建好了存储表的索引,该方法是为了查询所有的表字段及对应的值。
(有哪里表述不当的地方请指出见谅!)