linux lucene环境搭建,准备Lucene的开发环境

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      (高亮器)

1e476e177602c6d59972371c39b07769.png

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;

}

}

@Test

public 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对象转化成document

Document 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);

//关闭indexWriter

indexWriter.close();

}

@Test

public 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 articleList = new ArrayList();

for(ScoreDoc scoreDoc:scoreDocs){

float score = scoreDoc.score;//关键词得分

int index = scoreDoc.doc;//索引的下标

Document document = indexSearcher.doc(index);

//把document转化成article

Article 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());

}

}

如何把一个信息写到索引库中

a43b4af7ff687216c90bf6e22b0dc74f.png

读取信息的过程

2c2bd77158040edc8b2f75d9ec6526fd.png

0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值