
全文数据库即收录有原始文献全文的数据库。全文数据库以期刊论文、会议论文、政府出版物如政令文件等、研究报告、法律条文和案例、商业信息等为主。全文数据库免去了文献标引著录等加工环节,减少了数据组织中的人为因素,因此数据更新速度快,检索结果查准率更高;同时由于直接提供全文,省去了找到原文的麻烦,因此深受用户喜爱。全文数据库具有强大的检索功能,表现在它能提供丰富的检索点,允许用户从信息载体的人名、地名、年代、关键词等多个角度进行单项检索或多项组配检索,甚至可对文本中任意字段进行检索。
扩展资料:
理论上,要针对所有的表各写一条SQL,SQL中要列出所有的字符类字段,例如:
SELECT FROM taba WHERE fielda LIKE '%abc%' OR fieldB LIKE '%abc%' ……;
SELECT FROM tabb WHERE fielda LIKE '%abc%' OR fieldB LIKE '%abc%' ……;
写这样的SQL非常痛苦,看你是用的什么数据库,许多数据库系统有系统字典,就是在数据库里面的某些表中存放着所有的数据库、表、字段的名称和类型,那样可以通过那些信息编写出自动生成前面的SQL语句的SQL语句。
另外,一般的数据库都是存放在文件中或者磁盘上,可能利用全盘搜索软件搜索磁盘上特定的字符串,比上述SQL语句要快得多,只是搜索到了,要判断数据库行有一些麻烦。
好处上面已经说了。最大的优点其实就是检索速度快,对服务器的负荷降低
缺点,如果说有的话,就是需要进行填充
上一次填充后,你增加的内容,直到你再次增量填充,否则是检索不到的。
你可以根据自己更新内容的频率设置调度来自动执行。
这个问题很难回答,es也可以理解成是一种数据库,不仅能提供全文检索功能,还可以支持各种数值类的区间查询,聚合计算等,这些和传统数据库一样,从使用场景来说,数据库一般用来存meta,比如网站用户,用户资源等等,这些数据有个特点就是量不会很大,还有就是这些数据一般都比较结构化。
es一般用来存一些流式数据,比如应用日志,这也是目前es应用最广的方面,这些数据有个特点就是往往结构不固定,比如应用日志,不同的程序员写得模块打出来的日志字段数量都不一样,这种数据就不太方便用数据库来处理。
最后,一般传统数据库,全文检索都实现的很鸡肋,因为一般也没人用数据库存文本字段。
上面从使用场景上说明了两者的区别,从技术上两者全文检索的实现都差不多,无非是倒排索引,但是lucene毕竟是专业的,做了十几年了,索引效率,存储空间等都比传统数据库快很多,技术也迭代的非常快。
以上就是我总结的不同之处,希望能解答楼主的疑惑。
作者:Razzit
链接:>
前言:微软的SQL Server数据库是一个在中低端企业应用中占有广泛市场的关系型数据库系统,它以简单、方便、易用等特性深得众多软件开发人员和数据库管理人员的钟爱。但SQL Server 70以前的数据库系统由于没有全文检索功能,致使无法提供像文本内容查找此类的服务,成为一个小小的遗憾。从SQL Server 70起,到如今的SQL Server 2000终于具备了全文检索功能,使用户可以高效地检索存储在数据库char、varchar、text、ntext、nchar、nvarchar等数据类型列中的文本数据。
建立全文索引
在进行全文检索之前,必须先建立和填充数据库全文索引。为了支持全文索引 *** 作,SQL Server 70新增了一些存储过程和Transact-SQL语句。使用这些存储过程创建全文索引的具体步骤如下(括号内为调用的存储过程名称):
1 启动数据库的全文处理功能(sp_fulltext_
database);;
2 建立全文检索目录(sp_fulltext_catalog);
3在全文检索目录中注册需要全文索引的表(sp_fulltext_table);
4 指出表中需要全文检索的列名(sp_fulltext_
column);;
5 为表创建全文索引(sp_fulltext_table);;
6 填充全文检索目录(sp_fulltext_catalog)。
下面举例说明如何创建全文索引,在本例中,对Test数据库Book表中Title列和Notes列建立全文索引。
use test //打开数据库
//打开全文索引支持,启动SQL Server的全文搜索服务
execute sp_fulltext_database ‘enable’
//建立全文检索目录ft_test
execute sp_fulltext_catalog ‘ft_test’, ‘create’
为Title列建立全文索引数据元,pk_title为Book表中由主键所建立的唯一索引,这个参数是必需的。
execute sp_fulltext_table ‘book’,‘create’, ‘ft_test’,‘pk_title’
//设置全文索引列名
execute sp_fulltext_column ‘book’, ‘title’, ‘add’
execute sp_fulltext_column ‘book’,‘notes’, ‘add’
//建立全文索引
execute sp_fulltext_table ‘book’, ‘activate’
//填充全文索引目录
execute sp_fulltext_catalog ‘ft_test’, ‘start_full’
至此,全文索引建立完毕。
进行全文检索
SQL Server 2000提供的全文检索语句主要有CONTAINS和FREETEXT。CONTAINS语句的功能是在表的所有列或指定列中搜索:一个字或短语;一个字或短语的前缀;与一个字相近的另一个字;一个字的派生字;一个重复出现的字。
CONTAINS语句的语法格式为:
CONTAINS({column | }), <contains_search_condition> )
其中,column是搜索列,使用“”时说明对表中所有全文索引列进行搜索。Contains_search_
condition 说明CONTAINS语句的搜索内容,其语法格式为:
{||||}[{{AND|AND NOT|OR}}] [n]
下面就simple_term和prefix_term参数做简要说明:
simple_term是CONTAINS语句所搜索的单字或短语,当搜索的是一个短语时,必须使用双引号作为定界符。其格式为:
{‘word’|“ phrase”}
prefix_term说明CONTAINS语句所搜索的字或短语前缀,其格式为:
{“word” | “phrase”}
例如,下面语句检索Book表的Title列和Notes列中包含“database”或“computer”字符串的图书名称及其注释信息:
select title, notes
from book
where contains(tilte, ‘database’) or contains(notes,‘database’)
or contains(title,‘computer’) or contains(notes,‘computer’)
FREETEXT语句的功能是在一个表的所有列或指定列中搜索一个自由文本格式的字符串,并返回与该字符串匹配的数据行。所以,FREETEXT语句所执行的功能又称做自由式全文查询。
FREETEXT语句的语法格式为:FREETEXT({column | },‘freetext_string’)
其中,column是被搜索列,使用“”时说明对表中的所有全文索引列进行搜索。Freetext_string参数指出所搜索的自由文本格式字符串。
例如,下面语句使用FREETEXT语句搜索Book表中包含“Successful Life”字符串的数据行:
select title, notes
from book
where freetext(,‘Successful Life’)
共三种。
1、快速检索。提供了类似搜索引擎的检索方式,用户只需要输入所要找的关键词,点击“快速检索”就查到相关的文献。
2、标准检索。在标准检索中,将检索过程规范为三个步骤:一输入时间、支持基金、文献来源、作者等检索控制条件;二输入文献全文、篇名、主题、关键词等内容检索条件;三对检索结果的分组排序,反复筛选修正检索式得到最终结果。
3、专业检索。使用逻辑运算符和关键词构造检索式进行检索,用于图书情报专业人员查新、信息分析等工作。
以上就是关于什么是全文数据库全部的内容,包括:什么是全文数据库、对整个数据库进行搜索的方法、在数据库中使用全文索引的好外与坏处等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)