搜我要搜索引擎内核软件使用说明书.docx
《搜我要搜索引擎内核软件使用说明书.docx》由会员分享,可在线阅读,更多相关《搜我要搜索引擎内核软件使用说明书.docx(19页珍藏版)》请在冰豆网上搜索。
搜我要搜索引擎内核软件使用说明书
搜我要搜索引擎内核软件
使用说明书
1软件概述
1.1编写目的
随着计算机产业的迅猛发展,搜索引擎也应运而生。
用户直接获得自己想要的信息其实是很简单,但是面对着简单的搜索框,很多用户都只是了解大概,要想了解的更彻底关键在于学会怎么来用。
为了用户能够更快更方便更准确的获得想要的信息,本人独立自主开发了搜我要搜索引擎内核,主要使用了语义搜索等核心技术,并针对移动互联网的特点做了功能扩展。
1.2搜我要搜索引擎介绍
1.2.1搜我要搜索引擎定义
搜我要即搜索我想要的,搜我要搜索引擎主要用于帮助互联网用户查询信息的搜索工具,它以一定的策略在互联网中搜集、发现信息,对信息进行理解、提取、组织及处理,并且能为用户提供检索服务,从而起到信息导航的目的。
因此,搜索引擎(SearchEngine)是通过因特网查询网络信息的重要工具。
1.2.2核心技术-语义搜索
本人独立自主开发的搜我要搜索引擎内核,主要使用了语义搜索的核心技术,并针对移动互联网的特点做了功能扩展。
语义搜索是指搜索引擎的工作不再拘泥于用户所输入请求语句的字面本身,而是透过现象看本质,准确地捕捉到用户所输入语句后面的真正意图,并以此来进行搜索,从而更准确地向用户返回最符合其需求的搜索结果。
1.2.3搜我要搜索引擎的体系结构
图1体系结构图
1.2.4搜我要搜索引擎系统结构
图2系统结构图
1.2.5主要功能
本人开发的搜我要搜索引擎主要在互联网和移动互联网进行内容搜索,本搜索引擎具有对各大商城的网站进行抓取、建立索引、搜索比价的功能,运用了语义搜索等新一代搜索引擎技术,巧妙解决了中文信息的理解问题,极大地提高了搜索的准确性和查全率,语义搜索是本搜索引擎的核心,并申请了专利。
搜索界面如下图:
图3
1.2.6主要特点
1.2.6.1快速地为搜索文件建立索引,支持追加,重建,和不同编码的搜索文件。
1.2.6.2搜我要搜索引擎支持关键字搜索,与或非逻辑搜索,支持按需返回搜索结果。
1.2.6.3web服务器能快速连接搜我要搜索引擎,支持用户的多样化搜索,并展示搜索结果。
搜我要搜索引擎就一个庞大的数据库,主要是给搜索者提供便捷的服务,让客户以最短的时间找到自己想要的信息,让用户在第一时间了解到最新的需求信息。
本人开发的搜我要搜索引擎的原理可以看做3步:
1.从互联网上抓取网页;2.建立索引数据库;3.在索引数据库中搜索排序,图4为搜我要搜索引擎工作原理。
图4
2如何编译fts
1.aclocal
2.automake--add-missing
3.autoconf
4../configure
5.make
编译成功以后,在../src/目录下,有index.exe,search.exe和shutdown.exe。
2.1index.exe
index.exe是对网络爬虫抓来的网页建立索引,-D源目录,-d索引目录,-R重建索引(只在第一次用),-c国标或台湾
$./index-D/cygdrive/c/tf/src/-d/cygdrive/c/tf/trg-R-cGB2312
Startindexing...
Indexing/cygdrive/c/tf/src/Copyofbaima.t4i
#ofFilesProcessed:
1
#ofFilesIndexed:
1
TotalDataProcessed:
136.242KB.
AverageProcessingRate:
45.4141KBps.
TotalTimeUsed:
3seconds.
TotalProcessorTimeUsed:
2.875seconds.
CPUUsage:
95.8333%
2.2search.exe
Search.exe会在已建立的索引上运行一个socket服务器,可以接收多个搜索请求,默认听在端口30001。
$./search-d/cygdrive/c/tf/trg/
InfoAcerFTSSearchEngineisrunningonport30001.
搜索请求的格式是:
GET3<关键词>
WITH_HILITE在搜索结果中高亮关键词
WITH_RANKING按照评分的标准
WITH_ID_PATH返回文件路径或URL
WITH_SORT排序
返回结果以TLV来切分多个结果。
2.3shutdown.exe
Shutdown.exe用来安全关闭search.exe的服务。
3如何使用
3.1搜我要搜索引擎准备事项
3.1.1搜我要搜索引擎软件包
图5搜我要搜索引擎软件包
我们要用到两个文件:
Index.exe用来建立索引。
Search.exe用来开启搜我要搜索引擎。
3.1.2t4i文件
t4i文件即为*.t4i文件,它是要检索的内容来源。
与搜我要搜索引擎匹配的t4i文件须有如下格式:
<1>content1<\1><2>content2<\2><3>content3<\3>.......
红色部分为详细内容。
比如一手机信息的t4i文件为:
图6
现版本搜我要搜索引擎仅支持Big5和GB2312编码,所以t4i文件中应采用以上两种编码。
为支持全文搜索,强烈建议增加最后一个栏位,添加所有信息。
如图中栏位<6>。
3.1.3文件拷贝
通常,把t4i文件拷贝到search/tf/src/目录下(假定search.exe和index.exe在search/目录下),如图7所示:
图7
另在tf目录下新建文件夹trg。
(缺少该步骤建索引时会报错)
3.2建立索引并开启搜我要搜索引擎
3.2.1建索引
index.exe是对t4i文件建立索引,-D源目录,-d索引目录,-R重建索引(只在第一次用),-c国标或台湾–r遍历子目录可用–h查看帮助。
运行命令提示符,转到搜我要搜索引擎目录。
建索引命令格式
index.exe–Dtf\src–dtf\trg–R-r–cGB2312
索引建立完毕,结果如下:
3.2.2开启搜我要搜索引擎
Search.exe会在已建立的索引上运行一个socket服务器,可以接收多个搜索请求,默认听在端口30001。
命令如下,执行后程序便会在30001端口监听搜索请求。
3.3使用搜我要搜索引擎
需要发送两条TCP包和接受两条TCP包来完成搜索过程。
第一步:
与search.exe建立socket连接。
第二步:
发送搜索请求。
QUERYVECTOR:
(keyword)#Num;\n
其中keyword表示要查询的关键字,Num表示栏位号码。
如想在栏位6中搜索“诺基亚”,搜索请求命令这样写:
QUERYVECTOR:
(诺基亚)#6;\n
另外,还支持多栏位搜索,可通过&|!
来创建与或非逻辑表达式。
如果想搜索太平洋商城的诺基亚,搜索请求命令这样写:
QUERYVECTOR:
(诺基亚)#6&(太平洋)#0;\n
一般说来,搜我要搜索引擎反馈结果为OK2;\n
是搜我要搜索引擎内部的ID,有多少个ID就有多少个cache搜索结果。
是此次搜索共有多少个结果。
如OK20100表示搜索到100个结果。
如果接收到FAILED2-1;\n或其他,表示本次搜索失败。
通常是搜索请求命令有错。
第三步:
发送接收搜索结果命令。
GET3WITH_SORTWITH_HILITEWITH_ID_PATH;\n
是从上一个OK回复得来的,同时也知道有多少个命中
表示请求搜索结果的ID。
可把搜索结果想象一数组,两参量表示数组下标。
WITH_HILITE是返回需要高亮的关键词(不一定和用户输入结果一致)
WITH_SORT是对结果进行排序WITH_ID_PATH是返回原始文件本地路径
如想得到前两个结果:
GET301ITH_SORTWITH_HILITEWITH_ID_PATH;\n
搜我要搜索引擎响应:
OK13#<>
content是该t4i的内容。
此回复会含多个<.ranking>,具体数目是由决定的。
如果不涉及价位区间搜索,到此就该结束了。
如果要做区间,可参考下面文字(图8)。
图8
4前期处理
图9前期处理流程图
在网络爬虫程序把目标网页存到本地后,应该用处理程序进行初步处理,根据不同的字典来进行扫描,将html控制代码,多余的广告的无用信息去除,只保存有命中率的页面并存成纯文本格式,这样会提高索引准确率和效率。
这里提到的字典是人工创建的,开发人员应将不同类别的关键词汇放到字典文件中,由前期处理程序读取并记录每个目标页面关键词的命中率,当所有关键词的命中率为0时,此页面将被丢弃,否则转换成文本格式以便建索引。
如何建立字典?
除了人们日常的词汇,开发人员应下载一些不同类别的目标页面,搜集最新关键词来丰富词典,从而提高字典的准确性。
如果想要不同的分类,比如餐饮,电子和旅游,那么就要有三个字典,分别包含餐饮,电子和旅游的关键词。
这样通过前期处理程序就会有三类文本文件,分别对应餐饮,电子和旅游这三类。
也就意味着有三个分类索引,这样用户就可选择不同类别的搜索。
这样用户可以选择不同类别来搜索,可以增大命中率。
当然也可以选择所有类别来搜索。
5Handler环境搭建与配置
Handler是搜我要搜索引擎与客户端的中间环节,负责向搜我要搜索引擎请求搜索数据,并把返回结果展示给客户端。
该部分是基于RubyonRails开发的,接下来将带你一步步搭建和配置该环境,并进行测试。
步骤如下:
✓RubyonRails的下载与安装
✓工程文件导入
✓开启搜我要搜索引擎
✓开启服务器
✓测试,界面浏览
5.1RubyonRails的下载与安装
InstantRails最新版本为2.0,下载地址是
http:
//rubyforge.org/frs/?
group_id=904&release_id=17517。
InstantRails是绿色软件,下载完毕后解压即可使用。
5.2工程文件导入
✓Rails工程文件导入
将test文件
解压到%railsroot%\InstantRails-2.0-win\rails_apps下,其中%railsroot%是InstantRails的安装路径。
图10为本机上的解压路径。
图10
✓t4i文件导入
将t4i文件拷贝到%serchroot%\Search\tf\src下,%serchroot%是搜我要搜索引擎search所在目录。
5.3开启搜我要搜索引擎
✓建立索引
运行命令提示符,进入搜我要搜索引擎search所在目录。
输入命令如下:
结果如下:
✓启动搜我要搜索引擎
命令如下,执行后程序便会在30001端口监听搜索请求。
5.4开启服务器
在开启服务器之前,需要针对搭建环境修改部分代码。
✓更改IP
如果不是本机测试,即搜我要搜索引擎和handler不在同一台机器上运行,需要修改%railsroot%\InstantRails-2.0-win\rails_app\test\app\controllers\bridge_controller.rb文件,将Line20中“127.0.0.1”改为搜我要搜索引擎所在主机的IP地址。
%railsroot%是InstantRails的安装路径。
本机运行跳过此步骤。
✓重定位资源文件目录
打开%railsroot%\InstantRails-2.0-win\rails_apps\test\app\views\bridge\search.html.erb
将Line29中的
"E:
\\java\\workspace\\heritrix\\jobs\\JingDongShangCheng-20110707095841078\\mirror"替换为抓取的网页所在目录。
否则浏览时不能显示图片。
✓启动服务器
打开%railsroot%\InstantRails-2.0-win\InstantRails.exe,点击“工”字形图标,在弹出网页中选择RailsApplications\ManageRailsApplications...
在弹出的RailsApplications页面下勾选test工程,点击ConfigureStartupMode...可以配置端口,这里我使用的是3003端口。
点击按钮StartwithMongrel。
服务器启动完毕效果如下:
5.5界面浏览测试
打开IE,键入地址http:
//localhost:
3003/bridge/index,结果如图11所示:
图11
在图12中输入搜索关键字,如“华为”,点击“search“按钮,可搜索到商品网页。
图12
图13
如图13中的商品网页,有相关的广告栏位、分类选项、搜索结果等。
搜索结果的价格可以做比较,点击图12中的“比购一下”按钮,则会弹出各个商家的报价信息(如图14所示),通过价格比较,确保您能找到最低价的商品。
图14
点击图13中标注的“more”,则会出现商品(华为U8800手机)的详细信息,如图15。
图15
搜索结果的图片可以放大,将鼠标放在手机图片上,则会出现华为手机大图(图16)。
图16