lucene第一天
来源:互联网 发布:音乐加快软件 编辑:程序博客网 时间:2024/06/05 10:55
package com.cc.lucence;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.StringField;import org.apache.lucene.index.IndexWriter;import org.apache.lucene.index.IndexWriterConfig;import org.apache.lucene.store.Directory;import org.apache.lucene.store.FSDirectory;import org.junit.Test;import java.io.IOException;import java.nio.file.FileSystems;import java.nio.file.Path;public class CreateIndex { //设置创建索引的目录,在当前工程的根目录下的index下 public static final String PATH = "./index"; //分词器 public Analyzer analyzer = null; public CreateIndex() { analyzer = new StandardAnalyzer(); } public void createIndex() { Path path = FileSystems.getDefault().getPath(PATH); try { Directory directory = FSDirectory.open(path); IndexWriterConfig config = new IndexWriterConfig(analyzer); IndexWriter indexWriter = new IndexWriter(directory, config); Document document = new Document(); document.add(new StringField("id","1", Field.Store.YES)); document.add(new StringField("name","jack", Field.Store.YES)); document.add(new StringField("desc","我市社会主义接班人", Field.Store.YES)); indexWriter.addDocument(document); indexWriter.close(); } catch (IOException e) { e.printStackTrace(); } } public void test1(){ CreateIndex index = new CreateIndex(); index.createIndex(); }}
二、读取索引文件
package com.cc.lucence;import org.apache.lucene.analysis.Analyzer;import org.apache.lucene.analysis.standard.StandardAnalyzer;import org.apache.lucene.document.Document;import org.apache.lucene.index.DirectoryReader;import org.apache.lucene.index.IndexReader;import org.apache.lucene.index.ParallelLeafReader;import org.apache.lucene.queryparser.classic.MultiFieldQueryParser;import org.apache.lucene.queryparser.classic.ParseException;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.store.Directory;import org.apache.lucene.store.FSDirectory;import org.junit.Test;import java.io.IOException;import java.nio.file.FileSystems;import java.nio.file.Path;public class ReaderIndex { public static final String PATH = "./index"; public Analyzer analyzer = null; public ReaderIndex() { analyzer = new StandardAnalyzer(); } public void readIndex() { Path path = FileSystems.getDefault().getPath(PATH); try { Directory directory = FSDirectory.open(path); IndexReader reader = DirectoryReader.open(directory); IndexSearcher searcher = new IndexSearcher(reader); //这个数组的含义是关键字在哪几个字段内,避免全局查找 String[] s = {"name","desc"}; MultiFieldQueryParser parser = new MultiFieldQueryParser(s, analyzer); Query query = parser.parse("jack"); TopDocs topDocs = searcher.search(query, 2); ScoreDoc[] docs = topDocs.scoreDocs; for(ScoreDoc d:docs){ int doc = d.doc; Document doc1 = searcher.doc(doc); String id = doc1.get("id"); String name = doc1.get("name"); String desc = doc1.get("desc"); System.out.println(id+","+name+","+desc); } } catch (IOException e) { e.printStackTrace(); } catch (ParseException e) { e.printStackTrace(); } } public void test1(){ ReaderIndex readerIndex = new ReaderIndex(); readerIndex.readIndex(); }}
阅读全文
0 0
- Lucene第一天入门
- lucene第一天
- 第一天
- 第一天
- 第一天~
- 第一天
- 第一天
- 第一天
- 第一天
- 第一天
- #第一天
- 第一天
- 第一天
- 第一天
- 第一天
- 第一天
- 第一天
- 第一天
- 【Java 并发】线程安全性
- 表单验证 二级联动 添加 删除
- Java for Web学习笔记(九十):消息和集群(5)利用websocket实现订阅和发布(上)
- laravel使用excel报错情况
- java面试需要掌握知识点
- lucene第一天
- Redis之 字符串(String)
- Python变量、自定义函数
- node和npm版本更新
- VUE详细搭建过程(转)
- Java实训——创建一个窗体程序,实现简单的数学加、减法测试。
- NW温故而知新
- C++的类域、友元以及运算符重载
- 移动web页面,input获取焦点弹出系统虚拟键盘时,挡住input的解决方案