lucene简单入门
来源:互联网 发布:四阶矩阵行列式计算 编辑:程序博客网 时间:2024/06/16 18:21
Lucene是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎。
1,所需的基础jar包
lucene-analyzers-common-6.4.2.jar
lucene-core-6.4.2.jar
lucene-memory-6.4.2.jar
lucene-queryparser-6.4.2.jar
lucene-core-6.4.2.jar
lucene-memory-6.4.2.jar
lucene-queryparser-6.4.2.jar
官方下载地址:http://www.apache.org/dyn/closer.lua/lucene/java/6.4.2
2,lucene倒排索引原理
3,一些基础代码实现
package com.zhuyun.demo;import java.nio.file.Paths;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.Store;import org.apache.lucene.document.StringField;import org.apache.lucene.index.DirectoryReader;import org.apache.lucene.index.IndexWriter;import org.apache.lucene.index.IndexWriterConfig;import org.apache.lucene.index.Term;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.TermQuery;import org.apache.lucene.search.TopDocs;import org.apache.lucene.store.FSDirectory;import org.junit.Test;public class LuceneDemo {@Testpublic void createIndex() throws Exception { IndexWriter indexWriter = new IndexWriter(FSDirectory.open(Paths.get("index/")), new IndexWriterConfig(new StandardAnalyzer()));Document document = new Document();document.add(new StringField("age", "17", Store.YES));document.add(new StringField("name", "cai", Store.YES));document.add(new StringField("content", "aaaa", Store.YES));indexWriter.addDocument(document);indexWriter.close();}@Test public void searchIndex() throws Exception { IndexSearcher indexSearcher = new IndexSearcher(DirectoryReader.open(FSDirectory.open(Paths.get("index/")))); Query query = new TermQuery(new Term("age", "17")); //查询age=15的文档//Query query = new QueryParser("content", analyzer).parse("张三是个教师!");TopDocs topDocs = indexSearcher.search(query, 10); //返回符合条件的前10条System.out.println("count:" + topDocs.totalHits); //查询出来的结果总数ScoreDoc[] scoreDocs = topDocs.scoreDocs; Document document = null; for (ScoreDoc scoreDoc : scoreDocs) { int docId = scoreDoc.doc; document = indexSearcher.doc(docId); String age = document.get("age"); String name = document.get("name"); String content = document.get("content"); System.out.println("age:" + age + ",name:" + name + ",content:" + content); } }}
第二个方法,根据条件查询结果:
count:1age:17,name:cai,content:aaaa
0 0
- Lucene入门简单说明
- lucene简单入门demo
- lucene入门简单实现
- lucene简单入门
- Lucene入门以及简单实例
- lucene简单的入门程序
- lucene入门简单的例子
- Lucene 入门和简单封装
- lucene入门-简单的WEB搜索界面
- lucene第一步--简单的入门demo
- lucene 入门
- lucene入门
- lucene入门
- Lucene入门
- LUCENE入门
- Lucene入门
- Lucene入门
- Lucene入门
- Redis的缓存策略和主键失效机制
- MATLAB 相关功能研究
- 217. Contains Duplicate python
- springMVC接收json格式数据
- poj 2488 A Knight's Journey(DFS)
- lucene简单入门
- 【CODE[VS]】3943 数学奇才琪露诺 (月赛round1)
- 牛客网错题集-C++
- java基础
- Struts2之ModelDriven的使用
- android 常用第三方服务
- Lock和synchronized比较
- C++Primer笔记--数组
- 使用Fiddler作为简单的mockserver