您的位置:首页 > 数据库

用Lucene.net对数据库建立索引及搜索<转>

2009-07-25 07:23 816 查看
用Lucene.net对数据库建立索引及搜索

最近我一直在研究 Lucene.net ,发现Lucene.net对数据库方面建索引的文章在网上很少见,其实它是可以对数据库进行索引的,我闲着没事,写了个测试程序,竟然成功了, 可以实现对数据另类查询的一种方式(通过建索引查询),发表出来,和大家共享.
其实 Lucene.net 对数据库建索引很简单,只要把数据表里面的记录读出来,然后对每个字段索引就行了.本文中数据库的内容是某个博客表-userblog表。

1.表结构:
字段名称 字段类型 字段含义
id Varchar(11) 编号
title Varchar(50) 标题
content Text 内容

2.程序流程
1) 打开数据库;
2) 建立索引;
3) 根据索引进行全文搜索.

4.附源码:
aspx文件:

Lucene.Net.Search.IndexSearcher search=new Lucene.Net.Search.IndexSearcher(@"E:\1\index"); //把刚才建立的索引取出来
Lucene.Net.Search.Query q=Lucene.Net.QueryParsers.QueryParser.Parse("搜索关键字","intr",new Lucene.Net.Analysis.Standard.StandardAnalyzer());
Lucene.Net.Search.Hits hit =search.Search(q);
lb.Items.Clear(); //lb是我测试程序中的一个 listbox

for(int i=0;i<=hit.Length()-1;i++)
{
lb.Items.Add(hit.Doc(i).GetField("bookname").StringValue());
}
实现的效果很简单。 就是 把关键字到 intr(也就是简介)中匹配。返回相关的 bookname 最后返回一个列表。

以上是一个很简单的 搜索例子。
有兴趣的 朋友可以 尝试做一些复杂的搜索.
文章出处:DIY部落(http://www.diybl.com/course/4_webprogram/asp.net/netjs/20071226/93999.html)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: