lucene全文检索与数据库检索的区别

1.性能

数据库:like检索(会把表中数据进行一行一行的扫描,)性能慢

Lucene检索:先把数据那过来建立检索,然后在根据建立的索引进行查找,这样的话我们需要多维护一份索引表。多一个创建索引的过程,但是我们是一次创建多次使用。

2:相关度排序

数据库检索:通过 order by 关键字来操作。

Lucene检索:对查询出来的每个document都有一个算法,(得分)得分是根据算法算出来的。得分越高,排序的顺序越靠前。

排序可以人工干预(通过设置权重值)

代码:

public static Document articleToDocument(Article article){
Document document=new Document();
IntField idfield=new IntField("id",article.getId(),Store.YES);
StringField authorfield=new StringField("author", article.getAuthor(), Store.YES);
StringField urlfield=new StringField("link", article.getLink(), Store.YES);
TextField title=new TextField("title", article.getTitle(),Store.YES);
//设置权重值,默认为1f..
title.setBoost(4f);

TextField contentfield=new TextField("content", article.getContent(),Store.YES);
document.add(idfield);
document.add(authorfield);
document.add(urlfield);
document.add(title);
document.add(contentfield);
return document;
}

3:匹配的准确度

数据库检索: 通过like 关键字进行检索  其中相关文字得用 % 来表示  如:like %ant%

Lucene检索:先把数据拿过来分词建立索引,根据建好的索引进行查找。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值