lucene5.5.1入门
2016-05-22 00:00
357 查看
摘要: lucene5.5.1入门例子,需要jar:lucene-analyzers-common-5.5.1.jar,lucene-core-5.5.1.jar,lucene-queries-5.5.1.jar,lucene-queryparser-5.5.1.jar,下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/lucene/java/5.5.1/
[code=language-java]package com.lucene; 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.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.store.Directory; import org.apache.lucene.store.RAMDirectory; import java.io.IOException; /** * Created by liujh on 16/5/22. */ public class TestLucene { static Analyzer analyzer = new StandardAnalyzer(); static Directory directory = new RAMDirectory(); //Directory directory = FSDirectory.open(new File("/youfilepath")); public static void main(String[] args) throws IOException, ParseException { createIndex(); queryIndex(); } public static void createIndex() throws IOException { IndexWriterConfig config = new IndexWriterConfig(analyzer); IndexWriter iwriter = new IndexWriter(directory, config); Document doc = new Document(); String text = "my name is liujinhu"; doc.add(new Field("name", text, TextField.TYPE_STORED)); iwriter.addDocument(doc); iwriter.close(); System.out.println("建立索引 ok"); } public static void queryIndex() throws IOException, ParseException { DirectoryReader ireader = DirectoryReader.open(directory); IndexSearcher isearcher = new IndexSearcher(ireader); QueryParser parser = new QueryParser("name", analyzer); //ireader.document(ireader.maxDoc()-1).get("name") 获取name索引的所有内容 System.out.println("name:"+ireader.document(ireader.maxDoc()-1).get("name")); Query query = parser.parse("liujinhu");//查询name是否含有liujinhu词 ScoreDoc[] hits = isearcher.search(query, 1000).scoreDocs; System.out.println(hits.length == 1); for (int i = 0; i < hits.length; i++) { Document hitDoc = isearcher.doc(hits[i].doc); System.out.println(hitDoc.get("name")); } ireader.close(); //directory.close(); directory关闭了,queryIndex()连续调用两次,将报错 } }
相关文章推荐
- java Lucene 中自定义排序的实现
- 使用Java的Lucene搜索工具对检索结果进行分组和分页
- 关于lucene搜索时排序的问题
- Lucene highlighter高亮显示
- IKAnalyzer分词技术
- Highlighter与BooleanQuery查询
- 从零开始使用Hubbledotnet进行全文搜索-前言
- 打造自己的搜索引擎
- Lucene整合"庖丁解牛"中文分词包
- JAVA lucene全文检索工具包的理解与使用 分享
- Lucene:基于Java的全文检索引擎简介
- 使用Lucene 3.3.0的结构遍历TokenStream的内容.
- hadoop+lucene+web 综合小demo
- Lucene 学习笔记(一)
- spring4.2 定时任务
- lucene集成IK实现中文分词检索
- lucene4.2 + IKanalyzer2012FF_u1简单示例 .
- lucene solr在tomcat中的配置
- Lucene 3.6 contrib 学习总结
- lucene全文检索学习记录,附带源码——三种实现,超全超细致