lucene_7.1_demo
来源:互联网 发布:全球商务数据公司 编辑:程序博客网 时间:2024/06/03 14:47
lucene 7.1 demo
1、基于maven;废话不多说,如下
<dependencies> <dependency> <groupId>org.apache.lucene</groupId> <artifactId>lucene-core</artifactId> <version>7.1.0</version> </dependency> <dependency> <groupId>org.apache.lucene</groupId> <artifactId>lucene-analyzers-smartcn</artifactId> <version>7.1.0</version> </dependency> <dependency> <groupId>org.apache.lucene</groupId> <artifactId>lucene-queryparser</artifactId> <version>7.1.0</version> </dependency> <dependency> <groupId>org.apache.lucene</groupId> <artifactId>lucene-highlighter</artifactId> <version>7.1.0</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency></dependencies>
2、IndexWriter(可以是实体,也可以是读取的文件)
2.1实体
@Testpublic void add() throws IOException { Article article = new Article(); article.setId(1); article.setTitle("Lucene全文检索"); article.setContent("Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。"); final Path path = Paths.get("./article/"); Directory directory = FSDirectory.open(path); Analyzer analyzer = new StandardAnalyzer(); IndexWriterConfig indexWriterConfig = new IndexWriterConfig(analyzer); indexWriterConfig.setOpenMode(IndexWriterConfig.OpenMode.CREATE); IndexWriter indexWriter = new IndexWriter(directory, indexWriterConfig); Document document = new Document(); document.add(new TextField("id", article.getId().toString(), Field.Store.YES)); document.add(new TextField("title", article.getTitle(), Field.Store.YES)); document.add(new TextField("content", article.getContent(), Field.Store.YES)); indexWriter.addDocument(document); indexWriter.close();}
2.2 文件
@Testpublic void addFile() throws IOException { final Path path = Paths.get("./article/"); Directory directory = FSDirectory.open(path); Analyzer analyzer = new StandardAnalyzer(); IndexWriterConfig indexWriterConfig = new IndexWriterConfig(analyzer); indexWriterConfig.setOpenMode(IndexWriterConfig.OpenMode.CREATE); IndexWriter indexWriter = new IndexWriter(directory, indexWriterConfig); BufferedReader bufferedReader = new BufferedReader(new FileReader(new File("e:/2017_10_17.stderrout.log"))); String content = ""; while ((content = bufferedReader.readLine())!=null){ System.out.println(content); Document document = new Document(); document.add(new TextField("logs", content, Field.Store.YES)); indexWriter.addDocument(document); } indexWriter.close();}
3、Search(查询)
@Test public void SearchFiles() throws IOException, ParseException {// String queryString = "全文检索"; String queryString = "error"; //多条件// Query q = MultiFieldQueryParser.parse(new String[]{},new String[]{},new StandardAnalyzer()); final Path path = Paths.get("./article/"); Directory directory = FSDirectory.open(path); Analyzer analyzer = new StandardAnalyzer(); IndexReader indexReader = DirectoryReader.open(directory); IndexSearcher indexSearcher = new IndexSearcher(indexReader); //单条件 QueryParser queryParser = new QueryParser("logs",analyzer); Query query = queryParser.parse(queryString); TopDocs topDocs = indexSearcher.search(query,10); long conut = topDocs.totalHits; System.out.println("检索总条数:"+conut); ScoreDoc[] scoreDocs = topDocs.scoreDocs; for (ScoreDoc scoreDoc : scoreDocs) { Document document = indexSearcher.doc(scoreDoc.doc); System.out.print("相关度:"+scoreDoc.score+"-----time:"+document.get("time")); System.out.println(document.get("logs")); } }
阅读全文
0 0
- lucene_7.1_demo
- 背包_Demo
- Windows环境运行DPM(Discriminatively Trained Deformable Part Models)V3.1_Demo
- 开源项目WilliamChart的学习笔记1_demo的学习
- CXF入门学习_DEMO
- enum状态机_demo
- CyclisBarrier_仿真_demo
- 温室控制器_demo
- HttpClient超时设置_demo
- Hibernate_HQL查询_Demo(补充)
- Hibernate_一级缓存_Demo
- Hibernate_二级缓存_Demo
- Struts2_文件上传_Demo
- AJAX请求数据_demo
- 塔防_Demo
- shiro学习_demo
- AIDL_Service_多线程_通知_Demo
- WebRTC学习笔记_Demo收集
- HBase Connection Pooling
- UE4 To Support Framebuffer Fetch For OpenGL ES3.1
- Visual Basic
- Android MVP架构搭建
- UVA540 TeamQueue
- lucene_7.1_demo
- 曾经面试的一个关于文件操作的上机题
- 记:破解MFC小程序01
- Java线程池
- CentOS 6.5 -- Redis 4.0.2读写分离☞主从架构
- 【Ubuntu】Ubuntu创建桌面快捷方式
- mybatis学习总结二 crud操作
- TabLayout,ViewPager,Fragment实现联动
- css 制作定位图标