1.建立索引
黄色表示索引过程,对要搜索的原始内容进行索引构建一个索引库,索引过程包括:
确定原始内容即要搜索的内容
–》采集文档
–》创建文档
–》分析文档
–》索引文档
代码如下:
//获得索引库的路径
Path path = Paths.get("E:\\index_loc");
//打开索引库
FSDirectory dir = FSDirectory.open(path);
//创建分词器
Analyzer al = new IKAnalyzer();
//创建索引的写入的配置对象
IndexWriterConfig iwc = new IndexWriterConfig(al);
//创索引的Writer
IndexWriter iw = new IndexWriter(dir, iwc);
//采集原始文档
File sourceFile = new File("E:\\searchsource");
//获得文件夹下的所有文件
File [] files = sourceFile.listFiles();
//遍历每一个文件
for(File file : files){
//获得文件的属性
String fileName = file.getName();
String content = FileUtils.readFileToString(file);
long size = FileUtils.sizeOf(file);
String path1 = file.getPath();
Field fName = new TextField("fileName", fileName, Store.YES);
Field fcontent = new TextField("content", content, Store.NO);
Field fsize = new LongField("size", size, Store.YES);
Field fpath = new TextField("path", path1, Store.YES);
//创建文档对象
Document doc = new Document();
//把域加入到文档中
doc.add(fName);
doc.add(fcontent);
doc.add(fsize);
doc.add(fpath);
//把文档写入到索引库
iw.addDocument(doc);
}
//提交
iw.commit();
iw.close();
2.查询索引
蓝色表示搜索过程,从索引库中搜索内容,搜索过程包括:
用户通过搜索界面
–》创建查询
–》执行搜索,从索引库搜索
–》渲染搜索结果