Lucene7.1.0学习
来源:互联网 发布:歌曲剪辑合成软件 编辑:程序博客网 时间:2024/05/21 00:18
package com.royarn.luceneNew;import org.apache.lucene.analysis.Analyzer;import org.apache.lucene.analysis.standard.StandardAnalyzer;import org.apache.lucene.document.Document;import org.apache.lucene.document.Field;import org.apache.lucene.document.TextField;import org.apache.lucene.index.DirectoryReader;import org.apache.lucene.index.IndexReader;import org.apache.lucene.index.IndexWriter;import org.apache.lucene.index.IndexWriterConfig;import org.apache.lucene.queryparser.classic.ParseException;import org.apache.lucene.queryparser.classic.QueryParser;import org.apache.lucene.search.IndexSearcher;import org.apache.lucene.search.Query;import org.apache.lucene.search.ScoreDoc;import org.apache.lucene.search.TopDocs;import org.apache.lucene.search.spell.Dictionary;import org.apache.lucene.store.Directory;import org.apache.lucene.store.FSDirectory;import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.io.IOException;import java.nio.file.Path;import java.nio.file.Paths;import java.util.Date;/** * * @author lizq_cti_sx * @create 2017-12-05 9:45 * @deprecated */public class IndexProcesser { /** * 构建索引 * @throws IOException */ public void addFile() throws IOException { final Path path = Paths.get("D:\\Documents\\Downloads\\newIndex"); Directory directory = FSDirectory.open(path); Analyzer analyzer = new StandardAnalyzer(); IndexWriterConfig config = new IndexWriterConfig(analyzer); config.setOpenMode(IndexWriterConfig.OpenMode.CREATE); IndexWriter writer = new IndexWriter(directory, config); BufferedReader reader = new BufferedReader(new FileReader(new File("D:\\Documents\\Downloads\\bookName.txt"))); String content = ""; while ((content = reader.readLine()) != null) { Document document = new Document(); document.add(new TextField("logs", content, Field.Store.YES)); document.add(new TextField("time", String.valueOf(new Date().getTime()), Field.Store.YES)); writer.addDocument(document); } writer.close(); } /** * * @throws IOException * @throws ParseException * @description 单一查询条件 & */ public void searchFiles() throws IOException, ParseException { String queryStr = "紫罗兰"; final Path path = Paths.get("D:\\Documents\\Downloads\\newIndex"); Directory directory = FSDirectory.open(path); Analyzer analyzer = new StandardAnalyzer(); IndexReader reader = DirectoryReader.open(directory); IndexSearcher searcher = new IndexSearcher(reader); //单条件 QueryParser parser = new QueryParser("logs", analyzer); Query query = parser.parse(queryStr); TopDocs docs = searcher.search(query, 1); long count = docs.totalHits; System.out.println("检索总条数:" + count); ScoreDoc[] scoreDocs = docs.scoreDocs; for (ScoreDoc doc: scoreDocs) { Document document = searcher.doc(doc.doc); System.out.print("相关度:" + doc.score + "------time:" + document.get("time")); System.out.println(document.get("logs")); } } //主函数 public static void main(String[] args) { IndexProcesser processer = new IndexProcesser(); try { processer.addFile(); processer.searchFiles(); } catch (IOException e) { e.printStackTrace(); } catch (ParseException e) { e.printStackTrace(); } }}
阅读全文
0 0
- Lucene7.1.0学习
- 开放源代码的全文检索引擎Lucene7.1.0,学习过程
- lucene7.1.0 (二) helloworld
- lucene7.1.0 (四) 各种查询
- lucene7.1.0 (三) 索引的curd
- 简要概述lucene7.1.0 搜索流程
- 基于Lucene7 IKAnalyzer 报错问题
- apache lucene7.0几种常用的查询条件构造方式
- Lucene7.0与HanLP分词器整合索引数据库建立索引文件
- jscalendar 1.0 学习感言
- 学习MVC 1.0基础
- MySQL学习笔记 1.0
- Django学习1.0
- spark1.1.0学习路线
- EGL 1.0 学习笔记
- Gtest学习笔记1.0
- Python学习总结1.0
- 深度学习文档1.0
- 三道水水的奶牛题
- Android开发:LayoutParams的用法
- scrapy爬虫学习备忘录(1)
- K-Means实战与调优详解
- 10道腾讯的Java面试题
- Lucene7.1.0学习
- 数据蒋堂 | JOIN提速
- PowerDesigner逆向工程导出oracle表结构 若干问题
- python学习总结---lambda匿名函数
- three.js之投影矩阵
- mysql 报错 incompatible with only_full_group_by
- BZOJ2597: [Wc2007]剪刀石头布(费用流)
- 初识View-THREE
- WebP使用 图片优化