0

0

基于PHP的统一检索系统的设计与实现

php中文网

php中文网

发布时间:2016-06-06 19:47:27

|

1467人浏览过

|

来源于php中文网

原创

摘要: 通过 设计统一检索系统过程模型,对 网络数据库的检索步骤进行抽象,并 对 网络数据库进行描述,获取网络数据库的检索参数, 实现在 PHP5.0 环境下 网络数据库的统一检索,提高用户检索效率 。 采用 PHP 5.0 开发程序,优势在于优异的字符运算处理速

摘要:通过设计统一检索系统过程模型,对网络数据库的检索步骤进行抽象,并网络数据库进行描述,获取网络数据库的检索参数,实现在php5.0环境下网络数据库的统一检索,提高用户检索效率采用php 5.0开发程序,优势在于优异的字符运算处理速度和可靠性,通过与apache 2.0 web服务器相结合使得统一检索系统具备良好的性能和稳定性。同时,通过构造一个合理的四元组模型实现统一检索系统完整的二次检索。

关键词:统一检索   PHP   CURL   稳定性   二次检索

1 引言

近年来,随着数字图书馆的发展,高校或公共图书馆购买、引进了许多大型专业数据库,如SCIEI、中国学术期刊等,另一方面,各个图书馆提供的OPAC资源也越来越丰富,如此丰富的信息资源和众多的检索途径,为用户快速有效地获取真正所需的文献带来了很大的困难。为了查找所需文献,用户不得不对各个数据库逐一查找和借助网络搜索引擎进行搜索,而得到的却是纷繁复杂的检索结果,检索效率难以达到预期目标,主要原因在于:

数据库系统的异构性和分布性;

立即学习PHP免费学习笔记(深入)”;

各数据库彼此独立,用户无法同时检索多个网络数据库,检索结果相对分散;

各数据库的检索依托于特定的检索系统,用户难以理解并掌握众多的检索入口及语法;

网络搜索引擎无法访问动态页面,这为以后台数据库做支持,依靠接收用户请求表单中的信息而动态生成Web页面的检索造成了很大的困难;

某些数据库具有特定的使用权限要求,用户需要在不同的系统间重复注册,增加了用户负担。

针对上述问题,近年来,对异构数据库的集成检索日益得到关注。国内外的相关研究也取得了一定的进展。利用跨库集成检索系统,用户通过一个单一友好的界面,一次向多个Web数据库、搜索引擎提交检索请求,获取更为准确、有序的检索结果。以期在较高查全率下达到较高的查准率和检索效率[1]

2 统一检索系统的过程模型设计

由于各专业数据库和搜索引擎有不同的检索语法和操作符使用规则,在用户确定检索词及基本检索路径后,需要对“提问”进行分析处理。对目标系统不能处理的检索方式进行排除,并选择一种合适方式来匹配,最后根据不同的系统分别转换成可实现检索表达式,有针对性地将“问题”提交给所选定的目标系统,以获取最佳检索效果。

 

 基于PHP的统一检索系统的设计与实现

这个模型是四层:客户端,WEB服务器,应用服务器和资源层。用户只需要在客户端设定好检索信息后(包括检索词和资源选择),利用HTTP协议发送检索请求,检索请求信息传输到应用服务器后,在这里对检索请求进行分析,然后通过ODBCJDBC访问本地数据库,HTTP协议访问WEB检索系统和Z39.50访问远程资源,得到检索结果后加以整理,然后通过WEB服务器传到客户端。很显然,在这个模型中用户只需要一次设置,一次检索,最后一次就可以得到在传统检索中多次检索才能得到的检索结果,检索效率得到了很大的提高。

3 统一检索系统的实现

31  PHP

由于PHP建立在行业标准和Internet标准之上,集成了一些常用的Internet组件,如:CURL,采用性能优异的CURL访问组件,该组件远程访问速度比传统方式速度快了近200倍,采用FOPEN方式对于100HTTP文件请求每分钟只能打开10个,而采用CURL组件方式对于2000HTTP文件请求每分钟可以打开2000[3]。此外PHP可以非常方便地处理与HTTP协议有关的一些操作。另外,采用面向对象和基于类库的设计可相当方便地将系统以Web应用或Web Service形式发布。跨库检索系统实现的难点主要在于性能和稳定性的实现,采用PHP5.0作为开发工具,优势主要在于优异的字符运算处理速度和可靠性,通过与APACHE 2.0 Web服务器的组合使得跨库检索系统具备了良好的稳定性和性能[4]

基于上述理由,我们决定采用PHP5.0作为开发工具来实现统一检索系统。

32 网络数据库的描述

在跨库检索系统对各网络数据库进行处理之前,首先需要一种方法来描述各数据库的配置信息。我们采用了SQL SERVER 2000来存储各数据库的配置信息,主要存储了以下信息:

数据库基本信息,包括数据库在系统内部名称(英文)、对应模板、在原始检索系统中的内部数据库名称、字段映射解析类型、数据库中文名称、提供商、检索字段、原始网址、数据库类型、数据库语种等。

数据库模板字段映射基本信息,包括检索项、检索关键词、附加查询字符串、字符编码方式、翻页参数等。

数据库模板检索表达式信息,包括二次检索时逻辑与或非的表示等。

得到元数据引用点等信息,包括检索结果每页显示条数、命中记录数周围内容、检索结果数据引用点位置、原始网络数据库起始页码、原始网络数据库翻页增量、数据引用点表格头信息、详细信息(点击篇名后)数据引用点位置等。

得到检索结果的过程描述信息,包括数据库首页的浏览、登录以及提交检索条件、填写数据库检索条件等过程。

得到详细信息(点击篇名后)的过程描述信息。

得到全文的过程描述信息。

33 统一检索系统的程序实现

1网络数据库的检索参数分析

如果我们知道所要检索的网络数据库的URL和查询字符串的构成,那我们就可以通过HTTP协议来访问已有的网络数据库。我们就以我所的清华同方CNKI中国学术期刊全文数据库为例。

我所清华同方CNKI中国学术期刊全文数据库的镜像地址是:http://cnki.gsinfo.net.cn/kns50/Navigator.aspx?ID=1

打开这个网页,我们可以看出,它可供选择的参数有:论文范围,排序,匹配模式,论文年度,每页显示记录数,最后就是布尔检索的设置,最多可设置5个。我们还要分析网页中的JavaScript代码,看看这些检索参数是如何编码然后传送到WEB服务器的。一定要注意里面的隐藏参数,同时要注意表单的提交方式(POST或者GET),为了得到所有查询字符串参数,可以借助于工具软件Sniffer来获取。经分析得到的参数如下:

ID=1                     //代表当前检索的是中国学术期刊全文数据库

order=dec                //代表检索结果按降序排列

searchmatch=1           //代表检索匹配方式为精确

yearstart=1979          //代表检索起始年限为1979

yearend=2006          //代表检索终止年限为2006

RecordsPerPage=20    //代表检索结果每页显示20

SearchRange=All     //代表检索范围为所有专辑

searchInResult=0    //代表不是在结果中检索

TableType=PY

magento(麦进斗)
magento(麦进斗)

Magento是一套专业开源的PHP电子商务系统。Magento设计得非常灵活,具有模块化架构体系和丰富的功能。易于与第三方应用系统无缝集成。Magento开源网店系统的特点主要分以下几大类,网站管理促销和工具国际化支持SEO搜索引擎优化结账方式运输快递支付方式客户服务用户帐户目录管理目录浏览产品展示分析和报表Magento 1.6 主要包含以下新特性:•持久性购物 - 为不同的

下载

display=Chinese   //代表检索结果显示为中文

encode=gb       //代表检索结果编码方式为gb2312

userright=

VarNum=1         //代表检索项为1

hdnIsAll=true

NaviField=

NaviDatabaseName=CJFDZJCLS//代表当前检索数据库导航名称是中国学术期刊全文数据库

systemno=

hdnFathorCode=sysAll

TablePrefix=CJFD

advancedfield1=      //代表检索项,如:篇名

advancedvalue1=     //代表检索关键词,如:计算机

2网络数据库的代理检索程序实现

    以下是代理检索程序的简单实现:

$url = “http://cnki.gsinfo.net.cn/brief.aspx”;

$param = "data1=" . $data1 . "&data2=" . $data2;        //POST数据生成

ob_start()                                           //打开输出缓冲区

$ch = curl_init();                                    //初始化会话[5]

curl_setopt( $ch, CURLOPT_URL, $url );               //设定目标URL

curl_setopt( $ch, CURLOPT_HEADER, 0 );              //设定HEADER()

curl_setopt( $ch, CURLOPT_POST, 1 );               //设定表单发送方式为POST

curl_setopt( $ch, CURLOPT_POSTFIELDS, $param );   //POST数据

curl_exec( $ch );                                //发送请求

$retrievedhtml = ob_get_contents();             //返回内部缓冲区的内容

ob_end_clean();                        //删除内部缓冲区的内容并关闭内部缓冲区

curl_close( $ch );                    //会话结束

                                   //$retrievedhtml进行分析、处理得到元数据

?>

现在提取的信息就在$retrievedhtml中,然后就可以对页面内容进行分析,得到元数据和检索的格式。HTML文件进行分析,我们就可以得到我们所要的详细信息,然后将它显示出来。有全文的就可以得到下载全文的信息。

目前的检索系统都应用了Session技术,为了解决Session过期的问题,我们采用了检索时一次性释放检索系统Session会话的机制,当翻页时再次建立检索系统Session会话。

4

本文介绍了基于PHP的统一检索系统的设计与实现,它能满足网络数据库跨库检索的需要。但由于从各个数据源直接检索得到的结果存在一定的重复性和无序性,需要对其加工处理,主要包括:结果去重,即删除可能被多个独立系统同时检出的结果记录;结果排序,指根据记录的发布时间及相关度作出判断,来比较各个目标系统得到的记录并进行重新排序。这些功能的实现通常由系统通过Agent把检索结果以某种统一元数据形式建立临时数据库,并对其进行筛选、排序,然后以XML文档形式反馈给用户。此外,系统可以使用XML进行网络数据库的描述及实现,为了节省用户总的检索时间,可以实现并发检索,虽然PHP不支持多线程,但目前PHP可以嵌入JAVA,并发检索可以由JAVA来实现。这些有望在系统的下一版本中实现。

参考文献:

1刘晓娟. Web资源集成中的XML应用研究与实现. [D]. 北京:北京师范大学,2004.

2朱虎明.数字图书馆中统一检索系统的研究与开发. [D].西安:西安电子科技大学,2004.

3 http://curl.haxx.se/libcurl/php(Accessed Jan.9,2007)

4曹方,施韶亭.基于Web过程模拟的异构数字文献统一检索系统设计与实现[J].情报学报,2006,255:575-579.

5 http://cn.php.net/manual/zh/ref.curl.php(Accessed Jan.9,2007)

 

 

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

php

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

65

2025.12.31

php网站源码教程大全
php网站源码教程大全

本专题整合了php网站源码相关教程,阅读专题下面的文章了解更多详细内容。

43

2025.12.31

视频文件格式
视频文件格式

本专题整合了视频文件格式相关内容,阅读专题下面的文章了解更多详细内容。

35

2025.12.31

不受国内限制的浏览器大全
不受国内限制的浏览器大全

想找真正自由、无限制的上网体验?本合集精选2025年最开放、隐私强、访问无阻的浏览器App,涵盖Tor、Brave、Via、X浏览器、Mullvad等高自由度工具。支持自定义搜索引擎、广告拦截、隐身模式及全球网站无障碍访问,部分更具备防追踪、去谷歌化、双内核切换等高级功能。无论日常浏览、隐私保护还是突破地域限制,总有一款适合你!

41

2025.12.31

出现404解决方法大全
出现404解决方法大全

本专题整合了404错误解决方法大全,阅读专题下面的文章了解更多详细内容。

204

2025.12.31

html5怎么播放视频
html5怎么播放视频

想让网页流畅播放视频?本合集详解HTML5视频播放核心方法!涵盖<video>标签基础用法、多格式兼容(MP4/WebM/OGV)、自定义播放控件、响应式适配及常见浏览器兼容问题解决方案。无需插件,纯前端实现高清视频嵌入,助你快速打造现代化网页视频体验。

9

2025.12.31

关闭win10系统自动更新教程大全
关闭win10系统自动更新教程大全

本专题整合了关闭win10系统自动更新教程大全,阅读专题下面的文章了解更多详细内容。

8

2025.12.31

阻止电脑自动安装软件教程
阻止电脑自动安装软件教程

本专题整合了阻止电脑自动安装软件教程,阅读专题下面的文章了解更多详细教程。

3

2025.12.31

html5怎么使用
html5怎么使用

想快速上手HTML5开发?本合集为你整理最实用的HTML5使用指南!涵盖HTML5基础语法、主流框架(如Bootstrap、Vue、React)集成方法,以及无需安装、直接在线编辑运行的平台推荐(如CodePen、JSFiddle)。无论你是新手还是进阶开发者,都能轻松掌握HTML5网页制作、响应式布局与交互功能开发,零配置开启高效前端编程之旅!

2

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
CSS3 教程
CSS3 教程

共18课时 | 4.2万人学习

Rust 教程
Rust 教程

共28课时 | 4万人学习

Django 教程
Django 教程

共28课时 | 2.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号