
#include "stdioh"
#include <stdlibh>
#include <stringh>
#include "timeh"
char s[2000][1501];
int main(int argc,char argv[]){
char t[26],f[5]="ABCD",pt;
int i,j,k,n;
srand((unsigned)time(NULL));
for(i=0;i<2000;i++){
for(n=rand()%501+1000,j=0;j<n;s[i][j++]=f[rand()%4]);
s[i][j]='\0';
}
for(i=0;i<25;t[i++]=f[rand()%4]);
t[i]='\0';
printf("Looking for \'%s\'\n",t);
for(n=j=k=i=0;i<2000;i++){
if((pt=strstr(s[i],t)) && strstr(pt+1,t)){
pt=NULL;
n=2;
break;
}
if(pt && ++n==1)
k=i,j=pt-s[i];
if(n>1)
break;
}
if(n==1)
printf("There is only one \'%s\', which began from s[%d][%d]\n",t,k,j);
else if(n>1)
printf("Find more\n");
else
printf("Could not find\n");
return 0;
}
运行样例:
献检索的概念有狭义和广义之分狭义的检索(Retrieval)是指依据一定的方法,从已经组织好的大量有关文献集合中,查找并获取特定的相关文献的过程这里的文献集合,不是通常所指的文献本身,而是关于文献的信息或文献的线索如果真正要获取文献中所记录的信息,那么还要依据检索所取得的文献线索索取原文
广义的检索包括信息的存储和检索两个过程(Storage and Retrieval)信息存储是指工作人员将大量无序的信息集中起来,根据信息源的外表特征和内容特征,经过整理、分类、浓缩、标引等处理,使其系统化、有序化,并按一定的技术要求建成一个具有检索功能的工具或检索系统,供人们检索和利用而检索是指运用编制好的检索工具或检索系统,查找出满足用户要求的特定信息
文献的构成要素应包括:知识性内容,文献符号系统,文献记录方式,文献载体,这些要素之间相互联系,相互促进,
硬件部分
硬件是指以计算机主机为中心的一系列机器设备,包括主机、外围设备以及与数据处理或数据传送有关的其他设备。
软件部分
软件部分是信息检索系统中的有关程序和各种文件资料的总称 。存取系统的软件一般包括 *** 作系统、数据库管理程序、编译程序与汇编程序、自动标引程序、文件管理程序、词表管理程序、SDI程序、回溯检索程序、记账统计程序、通讯管理程序、总控程序等。
献检索的概念有狭义和广义之分。狭义的检索(Retrieval)是指依据一定的方法,从已经组织好的大量有关文献集合中,查找并获取特定的相关文献的过程。这里的文献集合,不是通常所指的文献本身,而是关于文献的信息或文献的线索。如果真正要获取文献中所记录的信息,那么还要依据检索所取得的文献线索索取原文。
广义的检索包括信息的存储和检索两个过程(Storage
and
Retrieval)。信息存储是指工作人员将大量无序的信息集中起来,根据信息源的外表特征和内容特征,经过整理、分类、浓缩、标引等处理,使其系统化、有序化,并按一定的技术要求建成一个具有检索功能的工具或检索系统,供人们检索和利用。而检索是指运用编制好的检索工具或检索系统,查找出满足用户要求的特定信息。
文献的构成要素应包括:知识性内容,文献符号系统,文献记录方式,文献载体,这些要素之间相互联系,相互促进,
文献检索的一般程序
文献检索程序也就是文献检索的过程和步骤。工具书虽然说是为了能够迅速给人们提供所需
要的知识或资料而编写的,但如果对工具书的知识了解不多,又不熟悉有效的检索步骤和方法,
面对成千上万的各类工具书,只是胡乱翻翻,那是达不到满意效果的。熟悉或掌握检索程序,也
是文献或知识检索的一项基本功。大体上,分以下五步:
1、根据需要确定检索范围
应当熟悉自己所要检索的资料的性质,看看属于哪个学科或哪一类,应尽量缩小检索范围,
便于快速检索。如果一时确定不了比较正确的检索范围,就只能利用综合性工具书如《辞海》、
百科全书了。
2、熟悉和利用现有的对口工具书
工具书种类繁多,必须对各种工具书比较熟悉,才能够按图索骥。各类工具书都有一定的收
录范围和编纂目的。多多熟悉各种不同的工具书,检索资料就会起到事半功倍的效果。
3、查阅凡例和熟悉排检法,检索出所需资料
一般,工具书的凡例说明了该工具书的编纂原则,编纂时间、出版时间、所收词目数量和范
围、怎么注音、如何解释、如何使用检索等内容。目录里则排列出了本辞书的全部内容标题,列
出了各种不同的排检方法。供熟悉不同排检法的人选择使用。如一部《辞海》就有六种排检法可
供选择。所以,查阅凡例很重要。
4、摘录和复制资料
途径有:一是卡片摘录,这是针对所需要的资料很少的时候用的;二是复印,这是针对所需
要的资料很多、长篇大论都可以用的时候用的;三是下载打印,这是针对电子数据或资料而用
的;四是剪贴,这是针对自己订阅的报刊和书籍而用的,图书馆和其他公共场所的报刊是绝对不
能剪贴的;五是电脑保存,这是针对有自用电脑的人而言的,但必须做好多个备份或保存到多个
移动硬盘里,以免因计算机中病毒或重新安装系统或不小心格式化硬盘而造成数据或资料丢失。
5、整理资料。一般是分类整理:有笔记式、卡片箱式、袋装式等各种形式。
搜索引擎分类
搜索引擎按其工作方式主要可分为三种,分别是全文搜索引擎(Full Text Search Engine)、目录索引类搜索引擎(Search Index/Directory)和元搜索引擎(Meta Search Engine)。
全文搜索引擎
全文搜索引擎是名副其实的搜索引擎,国外具代表性的有Google、Fast/AllTheWeb、AltaVista、Inktomi、Teoma、WiseNut等,国内著名的有百度(Baidu)。它们都是通过从互联网上提取的各个网站的信息(以网页文字为主)而建立的数据库中,检索与用户查询条件匹配的相关记录,然后按一定的排列顺序将结果返回给用户,因此他们是真正的搜索引擎。
从搜索结果来源的角度,全文搜索引擎又可细分为两种,一种是拥有自己的检索程序(Indexer),俗称“蜘蛛”(Spider)程序或“机器人”(Robot)程序,并自建网页数据库,搜索结果直接从自身的数据库中调用,如上面提到的7家引擎;另一种则是租用其他引擎的数据库,并按自定的格式排列搜索结果,如Lycos引擎。
目录索引
目录索引虽然有搜索功能,但在严格意义上算不上是真正的搜索引擎,仅仅是按目录分类的网站链接列表而已。用户完全可以不用进行关键词(Keywords)查询,仅靠分类目录也可找到需要的信息。目录索引中最
具代表性的莫过于大名鼎鼎的Yahoo雅虎。其他著名的还有Open Directory Project(DMOZ)、LookSmart、About等。国内的搜狐、新浪、网易搜索也都属于这一类。
元搜索引擎(META Search Engine)
元搜索引擎在接受用户查询请求时,同时在其他多个引擎上进行搜索,并将结果返回给用户。著名的元搜索引擎有InfoSpace、Dogpile、Vivisimo等(元搜索引擎列表),中文元搜索引擎中具代表性的有搜星搜索引擎。在搜索结果排列方面,有的直接按来源引擎排列搜索结果,如Dogpile,有的则按自定的规则将结果重新排列组合,如Vivisimo。
除上述三大类引擎外,还有以下几种非主流形式:
集合式搜索引擎:如HotBot在2002年底推出的引擎。该引擎类似META搜索引擎,但区别在于不是同时调用多个引擎进行搜索,而是由用户从提供的4个引擎当中选择,因此叫它“集合式”搜索引擎更确切些。
门户搜索引擎:如AOL Search、MSN Search等虽然提供搜索服务,但自身即没有分类目录也没有网页数据库,其搜索结果完全来自其他引擎。
免费链接列表(Free For All Links,简称FFA):这类网站一般只简单地滚动排列链接条目,少部分有简单的分类目录,不过规模比起Yahoo等目录索引来要小得多。
由于上述网站都为用户提供搜索查询服务,为方便起见,我们通常将其统称为搜索引擎。
搜索引擎基本工作原理
了解搜索引擎的工作原理对我们日常搜索应用和网站提交推广都会有很大帮助。
全文搜索引擎
在搜索引擎分类部分我们提到过全文搜索引擎从网站提取信息建立网页数据库的概念。搜索引擎的自动信息搜集功能分两种。一种是定期搜索,即每隔一段时间(比如Google一般是28天),搜索引擎主动派出“蜘蛛”程序,对一定IP地址范围内的互联网站进行检索,一旦发现新的网站,它会自动提取网站的信息和网址加入自己的数据库。
另一种是提交网站搜索,即网站拥有者主动向搜索引擎提交网址,它在一定时间内(2天到数月不等)定向向你的网站派出“蜘蛛”程序,扫描你的网站并将有关信息存入数据库,以备用户查询。由于近年来搜索引擎索引规则发生了很大变化,主动提交网址并不保证你的网站能进入搜索引擎数据库,因此目前最好的办法是多获得一些外部链接,让搜索引擎有更多机会找到你并自动将你的网站收录。
当用户以关键词查找信息时,搜索引擎会在数据库中进行搜寻,如果找到与用户要求内容相符的网站,便采用特殊的算法——通常根据网页中关键词的匹配程度,出现的位置/频次,链接质量等——计算出各网页的相关度及排名等级,然后根据关联度高低,按顺序将这些网页链接返回给用户。
目录索引
与全文搜索引擎相比,目录索引有许多不同之处。
首先,搜索引擎属于自动网站检索,而目录索引则完全依赖手工 *** 作。用户提交网站后,目录编辑人员会亲自浏览你的网站,然后根据一套自定的评判标准甚至编辑人员的主观印象,决定是否接纳你的网站。
其次,搜索引擎收录网站时,只要网站本身没有违反有关的规则,一般都能登录成功。而目录索引对网站的要求则高得多,有时即使登录多次也不一定成功。尤其象Yahoo!这样的超级索引,登录更是困难。(由于登录Yahoo!的难度最大,而它又是商家网络营销必争之地,所以我们会在后面用专门的篇幅介绍登录Yahoo雅虎的技巧)
此外,在登录搜索引擎时,我们一般不用考虑网站的分类问题,而登录目录索引时则必须将网站放在一个最合适的目录(Directory)。
最后,搜索引擎中各网站的有关信息都是从用户网页中自动提取的,所以用户的角度看,我们拥有更多的自主权;而目录索引则要求必须手工另外填写网站信息,而且还有各种各样的限制。更有甚者,如果工作人员认为你提交网站的目录、网站信息不合适,他可以随时对其进行调整,当然事先是不会和你商量的。
目录索引,顾名思义就是将网站分门别类地存放在相应的目录中,因此用户在查询信息时,可选择关键词搜索,也可按分类目录逐层查找。如以关键词搜索,返回的结果跟搜索引擎一样,也是根据信息关联程度排列网站,只不过其中人为因素要多一些。如果按分层目录查找,某一目录中网站的排名则是由标题字母的先后顺序决定(也有例外)。
目前,搜索引擎与目录索引有相互融合渗透的趋势。原来一些纯粹的全文搜索引擎现在也提供目录搜索,如Google就借用Open Directory目录提供分类查询。而象 Yahoo! 这些老牌目录索引则通过与Google等搜索引擎合作扩大搜索范围。在默认搜索模式下,一些目录类搜索引擎首先返回的是自己目录中匹配的网站,如国内搜狐、新浪、网易等;而另外一些则默认的是网页搜索,如Yahoo。
以上就是关于如何用c语言编写检索程序全部的内容,包括:如何用c语言编写检索程序、什么是文献检索及其文献的构成要素、计算机信息检索系统的基本结构等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)