Lucene学习(一):入门
2017-03-27 10:05
459 查看
luence的pom文件
<dependency> <groupId>org.apache.lucene</groupId> <artifactId>lucene-core</artifactId> <version>5.3.1</version> </dependency> <dependency> <groupId>org.apache.lucene</groupId> <artifactId>lucene-queryparser</artifactId> <version>5.3.1</version> </dependency> <dependency> <groupId>org.apache.lucene</groupId> <artifactId>lucene-analyzers-common</artifactId> <version>5.3.1</version> </dependency>luence建立索引
private IndexWriter indexWriter; /** * 简历索引 * @param dataDir 要检索的文件的地址 * @param indexDir 索引的存放地址 * @throws IOException */ public int doIndex(String dataDir, String indexDir) throws IOException { //目录 Directory dir = FSDirectory.open(Paths.get(indexDir)); //分词器 Analyzer analyzer = new StandardAnalyzer(); //配置 IndexWriterConfig iwc = new IndexWriterConfig(analyzer); //生成writer indexWriter = new IndexWriter(dir, iwc); File[] files = new File(dataDir).listFiles(); for(File f : files) { Document d = new Document(); d.add(new TextField("contents",new FileReader(f))); d.add(new TextField("fileName", f.getName(),Field.Store.YES)); d.add(new TextField("fullPath",f.getCanonicalPath(),Field.Store.YES)); indexWriter.addDocument(d); } return indexWriter.numDocs(); } /** * 关闭索引 * @throws IOException */ public void closeWriter() throws IOException { indexWriter.close(); }
luence搜索
/** * * @param indexDir 索引文件路径 * @param q 要查询的东西 * @throws IOException * @throws ParseException */ public void search(String indexDir, String q) throws IOException, ParseException { //构建IndexReader Directory dir = FSDirectory.open(Paths.get(indexDir)); IndexReader r = DirectoryReader.open(dir ); //构建query Analyzer analyzer = new StandardAnalyzer(); QueryParser parser=new QueryParser("fileName",analyzer); Query query = parser.parse(q); //构建IndexSearcher IndexSearcher is = new IndexSearcher(r); //查询 TopDocs hits = is.search(query , 10); //遍历结果 System.out.println(hits.totalHits); for(ScoreDoc d : hits.scoreDocs) { Document doc = is.doc(d.doc); System.out.println(doc.get("fullPath")); } }
相关文章推荐
- Lucene.net入门学习系列(1)
- Lucene.net入门学习系列(2)
- Lucene6入门教程(一)简介和学习流程
- lucene入门学习一
- 搜索学习入门--使用LuceneHighlighter高亮显示Lucene检索结果的关键词
- lucene入门学习
- Lucene学习(入门)
- Lucene学习之入门
- Lucene学习入门
- Lucene的学习第三篇——入门代码
- Lucene.net入门学习系列(2)
- Lucene第一个入门学习例子
- Lucene.net入门学习
- lucen入门学习之一(初识Lucene)
- 全文检索技术Lucene入门和学习、与数据库数据结合的demo实现
- Lucene.net入门学习系列(1)
- Lucene.net入门学习(结合盘古分词)
- Lucene入门学习
- 全文检索技术Lucene入门和学习、与数据库数据结合的demo实现
- Lucene的学习第六篇——入门代码再学习