数据库全文
在Microsoft SQL Server 7.0 中提供了全文索引服务(Full-Text Search Service),在查询性能上,对varchar,char,text类型的字段的匹配查询比用SQL语句使用Like操作符及匹配符的速度快10倍以上;在查询匹配上,提供了模糊匹配的高级搜索性能并能够返回查询的命中率。 Full Text Search Service包含在SQL Server 7.0中,在SQL Server 7 Destop版中不起作用。安装SQL Server时,无法缺省安装它,需要在Custom Installation 中选择。 服务安装完后在SQL Server EntERPrise Manager中的Support Services中显示为Full-text Search,在控制面版中的服务中显示为Microsoft Search.可以在SQL Server EnterPrise Manager中启动这个服务,就可以在表中加入全文索引了。要注意:只有有唯一索引栏的表才能建立全文索引,并且全文索引建立好之后就不能改变表了,如要改变表就必须得取出索引,然后再装入。
对表设置全文索引应用如下步骤:
1.选择要建立全文索引的表,然后选择: Full-Text Index Table ->Define Full-Text Indexing on a table
2.系统会启动SQL Server Full-Text Index 向导。
3.选择一个唯一索引。
4.选择一个要建立索引的字段。
5.选择catalog。
6.选择更新索引计划(由于全文索引和普通索引表不同,不能自动更新,所以得加入一个计划
)。
7.Finish。
8.选择在数据库Full-text catalogs中里的新建立的catalog,然后运行Start Population,Full Population 就可以了。
② 如何用C#实现数据库全文检索
目前行业网站的全文检索的方式主要有两种
方式一:通过数据库自带的全文索引
方式二:通过程序来自建全文索引系统
以sql server 2005为例
2005本身就自带全文索引功能,你可以先对数据库表
建立索引,具体如何建索引网上搜索一下,建立完索引之后,你就可以用sql来实现检索功能,例如:select * from ytbxw where
contaiins(字段,' 中国');多个查询值之间可以用and 或
or来实现,在单表以及单表视图上建全文索引对2005来说根本不是问题,但在多表视图建全文索引2005目前还无法实现这个功能,拿
www.ytbxw.com为例,其每个栏目的信息都是分开存放的,所以在检索上就无法用该方法来解决这个问题.
下面重点说一下如何用程序来实现检索功能
如果你想自己开发一个全文检索系统,我想这是相当复杂事情,要想实现也不是那么容易的事情,所以在这里我推荐一套开源程序,那就是dotlucene,我想大家可能都听过这个东东吧,那我就讲讲如何来实现多表情况下的全文检索.
1、新建winform项目,把lucene.net.dll添加到该项目中来
2、创建一个类,类名可以自己取
public class indexer
{
private indexwriter writer;
//在指定路径下创建索引文件
public indexer(string directory)
{
writer = new indexwriter(directory, new standardanalyzer(), true);
writer.setusecompoundfile(true);
}
//将信息添加到索引文件中
/*
field.text:为索引+读取
field.unindexed:不需要做索引
*/
public void addhtmldocument(string path,string title,string content)
{
document doc = new document();
doc.add(field.text("text", content));
doc.add(field.unindexed("path", path));
doc.add(field.text("title", title));
writer.adddocument(doc);
}
//解析html,过滤html代码
private string parsehtml(string html)
{
string temp = regex.replace(html, "<[^>]*>", "");
return temp.replace(" ", " ");
}
//从页面中获取文章标题
private string gettitle(string html)
{
match m = regex.match(html, "<title>(.*)</title>");
if (m.groups.count == 2)
return m.groups[1].value;
return "(unknown)";
}
//添加新闻到索引
public void addnews()
{
//从数据库获取记录(这部分略过)
for (int i = 1; i <= pagesize; i++)
{
rootid = int.parse(dr["classid"].tostring().substring(0, 2));
// 写入索引
addhtmldocument(http://www.ytbxw.com + dr["id"].tostring() + ".html",
dr["title"].tostring(), parsehtml(dr["content"].tostring()));
}/info/
}
//关闭索引
public void close()
{
writer.optimize();
writer.close();
}
}
③ 引文数据库和全文数据库的区别是什么
两个的数据是不一样的 。摆在首位的,便是观众对艺术的尊重程度,或是认识程度较低,对艺术与娱乐的概念,观众混为一谈不作区分。在台湾或是西方发达国家,交响乐被视作神圣庄重的高雅艺术,观众大多是了解并真心热爱交响乐之人。他们不觉得曲高和寡,愿意用安静聆听的方式尊重音乐和音乐家们。然而大陆观众中,这样的知音比重恐怕不会太大。敬酒也就是祝酒,是指在正式宴会上,由主人向来宾提议,提出某个事由而饮酒。一般情况下,敬酒应以年龄大小、职位高低、宾主身份为先后顺序,一定要充分考虑好敬酒的顺序,分明主次。
干杯前,可以象征性地和对方碰一下酒杯;碰杯的时候,应该让自己的酒杯低于对方的酒杯,表示你对对方的尊敬。用酒杯杯底轻碰桌面,也可以表示和对方碰杯。当你离对方比较远时,完全可以用这种方式代劳。如果主人亲自敬酒干杯后,要求回敬主人,和他再干一杯集体荣誉的背后,是三个人的共同参与,每个人都有一定的支配权,而分配结果要共同商议,才能不忘“集体”的初心。而在我教书生涯中,小云同学不仅有创新的智慧,更有奖金分配面前的大器,所以我认同他的观点——集体成功,荣誉共享。(再次强调观点,回扣前文。)
可是智者产生并非一日之功,“读万卷书,行万里路”,既要经得起实践的磨练,又要博览群书,深得中华文化之造诣,方可做到。作为平常之人,我们应不断的加强修养,虚心请教,倾听不同的声音,在实践中提升自己。只有这样,我们才能在变化的世界中从容应付,成为胜者子曰:“三人行,必有我师焉。择其善者而从之,择其不善者而改之。”其实这中间的“三”字应该是个虚词,“多”的意思。就是说几个人一起走,这其中一定有我可以跟从的人,这样就可以学习他们身上的优点,并及时改正自己身上的缺点。所以,当你一个人到达不了目的地时,团结他人是一个很好可团结的意识是怎么来的呢?这就要靠平时的养成了。我们应该从小就培养自己的集体荣誉感,不应该认为这个班级比赛对自己无益就随便玩玩,这样你是不可能成功的。如果班里的每个同学都能富有集体荣誉感,大家都团结互助,
④ oracle数据库实现全文检索
Oracle全文检索配置方法:
1.检查数据库是否具有全文检索功能(这是针对已经建成使用的数据库)
查看用户中是否存在ctxsys用户,查询角色里是否存在ctxapp角色。以上两个中的1个不满足(不存在),则说明没有装过全文检索功能。
使用contains函数的时候,若没有全文检索则会报错的。
2.若没有,则需要手动建立,先建立全文检索要使用的空间
sqlplus / as sysdba --进入控制台
createtablespaceIdx_ctxsysdatafile'/oradata/sg186fx/ctxsys01.;--创建全文检索使用的表空间
3.创建全文检索使用的用户和角色及相应的包,则需要执行oracle自带的一个脚本:cd $ORACLE_HOME/ctx/admin/catctx.sql
还是在sqlplus中执行:
@?/ctx/admin/catctx.sql ctxsys Idx_ctxsys temp nolock
在执行这个脚本的时候,输入了几个参数,第一个参数ctxsys为ctxsys用户的密码
第二个参数Idx_ctxsys为ctxsys用户要使用的表空间
第三个参数temp为ctxsys用户使用的临时表空间
第四个参数nolock为ctxsys用户处于解锁状态。
4.创建完成后,要登录ctxsys用户
connect ctxsys/ctxsys
执行以下脚本:@?/ctx/admin/defaults/drdefus.sql(这是个很重要的脚本,后面创建索引会使用该脚本创建的信息)
5.创建全文索引语法分析器
先要明确使用全文索引的用户,我要使用全文索引的是sgpm用户
因此
grantexecuteonctxsys.ctx_ddltosgpmwithgrantoption;
connect sgpm/sgpm
设置语法分析器:
execctx_ddl.drop_preference('chinalexer');
execctx_ddl.create_preference('chinalexer','chinese_lexer');
设置词法属性:
execctx_ddl.drop_preference('idx_c_store');
begin
ctx_ddl.create_preference('idx_c_store','BASIC_STORAGE');
ctx_ddl.set_attribut('idx_c_store','I_TABLE_CLAUSE','tablespacesIdx_ctxsy');
ctx_ddl.set_attribute('idx_c_store','I_INDEX_CLAUSE','tablespaceIdx_ctxsycompress2');
end;
/
6.创建索引
createindexsgpm.idx_c_cons_nameonsgpm.c_cons(cons_name)indextypeisctxsys.contextparameters('lexerchinalexerstorageidx_c_store');
7.同步索引
variablejobnonumber;
begin
dbms_job.submit(:jobno,'pkg_sp_tools.p_cont_sys_index();',sysdate,'trunc(sysdate)+19/24+1');--执行的是个性化方法。
end;
/
普通的就是用:
execctx_ddl.sync_index('idx_c_cons_name');
到此,全文检索创建成功,contains函数就可以正常使用了。
注意:创建的过程中会出现ORA-29879:cannot create multiple domain index on a column listusing same indextype ,这说明在其他用户下已经建立了该索引。
⑤ 全文数据库的分类
常用的中文全文数据库有:中国期刊全文数据库、中文科技期刊数据库、万方系统的数字化期刊全文数据库;常用英文全文数据 库有OVID全文期刊库、荷兰的SDOS、美国UMI公司的ProQuest Medical Library等。
阅读全文数据库,计算机内必须安装有全文浏览器。其通用的格式有PDF格式和HTML格式等,前者用Adobe Acrobat Reader阅读,后者用IE等网络浏览器阅读。
⑥ 全文数据库的主要全文数据库
中国期刊全文数据库
世界上最大的连续动态更新的中国期刊全文数据库,收录国内 8200 多种重要期刊,以学术、技术、政策指导、高等科普及教育类为主,同时收录部分基础教育、大众科普、大众文化和文艺作品类刊物,内容覆盖自然科学、工程技术、农业、哲学、医学、人文社会科学等各个领域 ,全文文献总量 2200 多万篇。按学科分为168个专题,每日更新,年新增文献100多万篇。
中国期刊全文数据库(世纪期刊)
收录回溯1979年至1993年的4195种期刊,部分期刊回溯至创刊,最早回溯至1887年,按学科分为168个专题,现有文献500多万篇,每月更新。
中国博士学位论文全文数据库
收录1999年至今420个博硕士培养单位的学位论文,现有论文5万多篇,每日更新。
中国优秀硕士学位论文全文数据库
收录1999年至今652个博硕士培养单位的学位论文,现有论文37万多篇,每日更新。
中国重要报纸全文数据库
收录2000年至今700多种重要报纸,现有文章645万多篇,每日更新,年新增文章120万篇。
中国重要会议论文全文数据库
收录2000年至今1200多家学术团体的会议论文,现有论文近58万篇,每日更新。
中国图书全文数据库
一期工程即将完成,首批3万种新书已上网服务,每日更新,年新增图书10万本。 中国医院知识仓库
收录1400多种医学期刊,108家医学博硕士培养单位学位论文,内容每日累增。
中小学多媒体数字图书馆
收录500余种教育类期刊,2000多种相关期刊,400余种相关报纸,以及多媒体教育教学素材、高初中同步教学辅导、高考中考名师辅导等,内容每日累增。
中国企业知识仓库
汇集企业所需期刊、优秀博硕士论文、重要会议论文、报纸全文、图书全文、新书目等数据资源。 涵盖企业所需各类信息资源、知识资源,利用现代信息技术进行加工整合,以最方便快捷的传播手段,为企业提供可有效利用的资源。主要分钢铁冶金、铝业、石油化工、石油天然气勘探、电力、发电、电网、金融、保险、证券、基金等各个行业、企业知识库,内容每日累增。 数值型知识元库
包括从各类统计年鉴及各种专业文献中抽取的统计数据和科学实验数据。
理论与方法型知识元数据库
包括从各种网络全书中抽取的专业术语解释及从各种专业论文中抽取的观点、理论、方法和技巧等知识元。
⑦ 目前全文的数据库有哪些
1、超星电子图书馆:收录的电子图书内容丰富,包括经典理论、哲学、社科、经济、语言文字、文学、数理化、生物、工业技术、计算机等50余个学科门类,现拥有中文电子图书80万种,论文300万篇,全文总量4亿余业,并且每天仍在不断地更新与增加。
2,书生之家数字图书馆:主要收录1999年以后出版的新书,其收录量为每年中国出版的新书品种一半以上,目前拥有图书15万种,数量可观,学科门类齐全。
3,中国学术期刊全文数据库:该库的产品分为十大专辑:理工A、理工B、理工C、农业、医药卫生、文史哲、政治军事与法律、教育与社会科学综合、电子技术与信息科学、经济与管理。个专辑分为若干专题,共168个专题。
4,维普中文科技期刊数据库:按照《中国图书馆分类法》进行分类,所有文献被分为8个专辑:社会科学、自然科学、工程技术、医药卫生、农业科学、经济管理、教育科学和图书情报。8大专辑又被细分为36个专题。
5,万方数字化期刊收藏资源的特点:目前集纳了理、工、农、医、人文五大类70多个类目,2500多种科技类核心期刊,实现全文上网。该系统收录的期刊种类主要有7个:基础科学、农业科学、社会科学、哲学政法、医学卫生、教科文艺、经济财政。
(7)数据库全文扩展阅读:
数据库主要特点:
(1)实现数据共享:
数据共享包含所有用户可同时存取数据库中的数据,也包括用户可以用各种方式通过接口使用数据库,并提供数据共享。
(2)减少数据的冗余度:
同文件系统相比,由于数据库实现了数据共享,从而避免了用户各自建立应用文件。减少了大量重复数据,减少了数据冗余,维护了数据的一致性。
(3)数据的独立性:
数据的独立性包括逻辑独立性(数据库中数据库的 逻辑结构和 应用程序相互独立)和物理独立性(数据物理结构的变化不影响数据的逻辑结构)。
(4)数据实现集中控制:
文件管理方式中,数据处于一种分散的状态,不同的用户或同一用户在不同处理中其文件之间毫无关系。利用数据库可对数据进行集中控制和管理,并通过 数据模型表示各种数据的组织以及数据间的联系。
⑧ 什么是全文数据库(full-text database)
一般用在文件检索方面,所谓全文是与一般的数据库比较而言的。一般的数据库中存储的只是某个文件的关键字,查找时也只能按照关键字去查找,而对于全文数据库,其中包含的是整个文章的内容。因此,在查询时,一般采用的是模糊查询。这样可以更多的涉及到文章的内容。