Lucene-HelloWorld
来源:互联网 发布:超市起名软件 编辑:程序博客网 时间:2024/06/14 03:06
1.1 准备lucene的开发环境
搭建lucene的开发环境,要准备lucene的jar包,要加入的jar包至少有:
1) lucene-core-3.1.0.jar (核心包)
2) lucene-analyzers-3.1.0.jar (分词器)
3) lucene-highlighter-3.1.0.jar (高亮器)
4) lucene-memory-3.1.0.jar (高亮器)
public class Article {private Long id;private String title;private String content;public Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getContent() {return content;}public void setContent(String content) {this.content = content;}}
@Testpublic void testCreateIndex() throws Exception{/** * 1、创建一个article对象,并且把信息存放进去 * 2、调用indexWriter的API把数据存放在索引库中 * 3、关闭indexWriter *///创建一个article对象,并且把信息存放进去Article article = new Article();article.setId(1L);article.setTitle("lucene可以做搜索引擎");article.setContent("baidu,google都是很好的搜索引擎");//调用indexWriter的API把数据存放在索引库中 /** * 创建一个IndexWriter * 参数三个 * 1、索引库 指向索引库的位置 * 2、分词器 */ //创建索引库 Directory directory = FSDirectory.open(new File("./indexDir")); //创建分词器 Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_30);IndexWriter indexWriter = new IndexWriter(directory, analyzer, MaxFieldLength.LIMITED); //把一个article对象转化成documentDocument document = new Document();Field idField = new Field("id",article.getId().toString(),Store.YES,Index.NOT_ANALYZED);Field titleField = new Field("title",article.getTitle(),Store.YES,Index.ANALYZED);Field contentField = new Field("content",article.getContent(),Store.YES,Index.ANALYZED);document.add(idField);document.add(titleField);document.add(contentField);indexWriter.addDocument(document);//关闭indexWriterindexWriter.close();}
@Testpublic void testSearchIndex() throws Exception{/** * 1、创建一个 IndexSearch对象 * 2、调用search方法进行检索 * 3、输出内容 *///创建一个 IndexSearch对象Directory directory = FSDirectory.open(new File("./indexDir"));IndexSearcher indexSearcher = new IndexSearcher(directory);//调用search方法进行检索Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_30);QueryParser queryParser = new QueryParser(Version.LUCENE_30,"content",analyzer);Query query = queryParser.parse("baidu");//关键词TopDocs topDocs = indexSearcher.search(query, 2);int count = topDocs.totalHits;//根据关键词查询出来的总的记录数ScoreDoc[] scoreDocs = topDocs.scoreDocs;List<Article> articleList = new ArrayList<Article>();for(ScoreDoc scoreDoc:scoreDocs){float score = scoreDoc.score;//关键词得分int index = scoreDoc.doc;//索引的下标Document document = indexSearcher.doc(index);//把document转化成articleArticle article = new Article();article.setId(Long.parseLong(document.get("id")));//document.getField("id").stringValue()article.setTitle(document.get("title"));article.setContent(document.get("content"));articleList.add(article);}for(Article article:articleList){System.out.println(article.getId());System.out.println(article.getTitle());System.out.println(article.getContent());}}
如何把一个信息写到索引库中
读取信息的过程
0 0
- Lucene helloworld
- Lucene-HelloWorld
- Lucene初识HelloWorld
- Lucene全文检索之HelloWorld
- Lucene 学习 2 自己写 HelloWorld
- 全文检索之lucene入门篇HelloWorld
- Lucene入门,第一个HelloWorld程序
- 全文检索之lucene入门篇HelloWorld
- Lucene实战(一)Lucene介绍及HelloWorld运行(附Eclipse工程)
- helloworld
- HelloWorld
- helloworld
- helloworld
- HelloWorld
- HelloWorld
- HelloWorld
- HelloWorld
- HelloWorld
- javascript(类定义)创建对象实例时指定成员方法
- 交替字符串
- intellij idea设置项目间的依赖
- Nginx学习笔记(十六):worker进程的循环工作
- S3C2416裸机开发系列三_启动代码以及流水灯c代码
- Lucene-HelloWorld
- 算法学习1:旅行售货员问题
- JAVA 内部类的使用
- 侧边栏SlidingMenu的应用
- edx 学习备忘2
- dos常用命令
- 离冰岩差一步
- 九度题目1186:打印日期
- xampp + sfs + U3d