当前位置 : 主页 > 网络推广 > seo >

WEBUS搜索引擎-SDK使用说明书

来源:互联网 收集:自由互联 发布时间:2021-06-16
1 软件概述 1.1 编写目的 随着计算机产业的迅猛发展,搜索引擎也应运而生。用户直接获得自己想要的信息其实是很简单,但是面对着简单的搜索框,很多用户都只是了解大概,要想了

 

1 软件概述

1.1 编写目的

    随着计算机产业的迅猛发展,搜索引擎也应运而生。用户直接获得自己想要的信息其实是很简单,但是面对着简单的搜索框,很多用户都只是了解大概,要想了解的更彻底关键在于学会怎么来用。为了用户能够更快更方便的获得想要的信息,本人针对自己开发的搜索引擎包特编写了使用说明书。

 

1.2 搜索引擎介绍

1.2.1 搜索引擎定义

    搜索引擎主要用于帮助互联网用户查询信息的搜索工具,它以一定的策略在互联网中搜集、发现信息,对信息进行理解、提取、组织及处理,并且能为用户提供检索服务,从而起到信息导航的目的因此,搜索引擎是用来在网上找资料的工具。

 

1.2.2 搜索引擎系统结构图

图1 系统结构图

 

1.2.3主要功能

    本人开发的搜索引擎主要是进行信息检索,从而返回检索结果。搜索引擎将用户所产生的一些信息列入了排序因素中,具有对各大商城的网站进行抓取、建立索引、搜索比价的功能。它是网络营销中最重要的组成部分,是向终端客户传递信息的重要环节。

搜索界面如下图:

 

1.2.4 主要特点

1.2.4.1 快速地为搜索文件建立索引,支持追加,重建,和不同编码的搜索文件。

1.2.4.2 搜索引擎支持关键字搜索,与或非逻辑搜索,支持按需返回搜索结果。

1.2.4.3 web服务器能快速连接搜索引擎,支持用户的多样化搜索,并展示搜索结果。

 

2 如何编译fts

1. aclocal

2. automake --add-missing

3. autoconf

4. ./configure

5. make

编译成功以后,在../src/目录下,有index.exe, search.exe 和shutdown.exe。

 

2.1 index.exe

index.exe是对网络爬虫抓来的网页建立索引,-D源目录,-d索引目录,-R重建索引(只在第一次用),-c 国标或台湾

$ ./index -D /cygdrive/c/tf/src/ -d /cygdrive/c/tf/trg -R -c GB2312

Start indexing ...

Indexing /cygdrive/c/tf/src/Copy of baima.t4i

     # of Files Processed : 1

       # of Files Indexed : 1

     Total Data Processed : 136.242 KB.

  Average Processing Rate : 45.4141 KBps.

          Total Time Used : 3 seconds.

Total Processor Time Used : 2.875 seconds.

                CPU Usage : 95.8333%

 

2.2 search.exe

Search.exe 会在已建立的索引上运行一个socket服务器,可以接收多个搜索请求,默认听在端口30001。

$ ./search -d /cygdrive/c/tf/trg/

InfoAcer FTS Search Engine is running on port 30001.

搜索请求的格式是:GET3 <关键词> <WITH_HILITE> <WITH_RANKING> <WITH_ID_PATH> <WITH_SORT>

WITH_HILITE 在搜索结果中高亮关键词

WITH_RANKING 按照评分的标准

WITH_ID_PATH   返回文件路径或URL

WITH_SORT 排序

返回结果以TLV来切分多个结果。

 

2.3 shutdown.exe

Shutdown.exe用来安全关闭search.exe的服务。

 

3 如何使用

3.1 搜索引擎准备事项

3.1.1 搜索引擎软件包

图2 搜索引擎软件包

我们要用到以下两个文件:Index.exe 用来建立索引。Search.exe 用来开启搜索引擎。

 

3.1.2 t4i文件

t4i文件即为*.t4i文件,它是要检索的内容来源。与该搜索引擎匹配的t4i文件须有如下格式:

<1>content1<\1><2>content2<\2><3>content3<\3>.......

红色部分为详细内容。比如一手机信息的t4i文件为:

图3

现版本搜索引擎仅支持Big5和GB2312编码,所以t4i文件中应采用以上两种编码。

为支持全文搜索,强烈建议增加最后一个栏位,添加所有信息。如图中栏位<6>。

 

3.1.3 文件拷贝

通常,把t4i文件拷贝到search/tf/src/目录下(假定search.exe和index.exe在search/目录下),如图4所示:

图4

另在tf目录下新建文件夹trg。(缺少该步骤建索引时会报错)

 

3.2 建立索引并开启搜索引擎

3.2.1 建索引

index.exe是对t4i文件建立索引,-D源目录,-d索引目录,-R重建索引(只在第一次用),-c 国标或台湾 –r 遍历子目录 可用–h 查看帮助。

运行命令提示符,转到搜索引擎目录。建索引命令格式

index.exe –D tf\src –d tf\trg –R -r –c GB2312

索引建立完毕,结果如下:

 

3.2.2 开启搜索引擎

Search.exe 会在已建立的索引上运行一个socket服务器,可以接收多个搜索请求,默认听在端口30001。

命令如下,执行后程序便会在30001端口监听搜索请求。

 

3.3 使用搜索引擎

需要发送两条TCP包和接受两条TCP包来完成搜索过程。

第一步:与search.exe建立socket连接。

 

第二步:发送搜索请求。

QUERY VECTOR:(keyword)#Num;\n

其中keyword表示要查询的关键字,Num表示栏位号码。如想在栏位6中搜索“诺基亚”, 搜索请求命令这样写:

QUERY VECTOR:(诺基亚)#6;\n

另外,还支持多栏位搜索,可通过& | !来创建与或非逻辑表达式。如果想搜索太平洋商城的诺基亚,搜索请求命令这样写:

QUERY VECTOR:(诺基亚)#6&(太平洋)#0;\n

一般说来,搜索引擎反馈结果为OK 2 <result id> <result number>;\n

<result id>是搜索引擎内部的ID,有多少个ID就有多少个cache搜索结果。

<result number>是此次搜索共有多少个结果。

如OK 2 0 100表示搜索到100个结果。

如果接收到FAILED 2 -1 ;\n 或其他,表示本次搜索失败。通常是搜索请求命令有错。

 

第三步:发送接收搜索结果命令。

GET3 <result id> <start ind> <end ind> WITH_SORT WITH_HILITE WITH_ID_PATH;\n

<result id> 是从上一个OK回复得来的,同时也知道有多少个命中

<start ind> <end ind> 表示请求搜索结果的ID。可把搜索结果想象一数组,两参量表示数组下标。

WITH_HILITE是返回需要高亮的关键词(不一定和用户输入结果一致)

WITH_SORT 是对结果进行排序WITH_ID_PATH是返回原始文件本地路径

如想得到前两个结果:

GET3 <result id> 0 1 ITH_SORT WITH_HILITE WITH_ID_PATH;\n

搜索引擎响应:

OK 13 #  < <file id> <path>  <content> <ranking>>

content是该t4i的内容。此回复会含多个<file id> <path>  <content> <.ranking>,具体数目是由<start ind> <end ind>决定的。

如果不涉及价位区间搜索,到此就该结束了。

如果要做区间,可参考下面文字(图5)。

图5

 

4 前期处理

图6 前期处理流程图

    在网络爬虫程序把目标网页存到本地后,应该用处理程序进行初步处理,根据不同的字典来进行扫描,将html控制代码,多余的广告的无用信息去除,只保存有命中率的页面并存成纯文本格式,这样会提高索引准确率和效率。

 

    这里提到的字典是人工创建的,开发人员应将不同类别的关键词汇放到字典文件中,由前期处理程序读取并记录每个目标页面关键词的命中率,当所有关键词的命中率为0时,此页面将被丢弃,否则转换成文本格式以便建索引。

 

    如何建立字典?除了人们日常的词汇,开发人员应下载一些不同类别的目标页面,搜集最新关键词来丰富词典,从而提高字典的准确性。

 

    如果想要不同的分类,比如餐饮,电子和旅游,那么就要有三个字典,分别包含餐饮,电子和旅游的关键词。


    这样通过前期处理程序就会有三类文本文件,分别对应餐饮,电子和旅游这三类。也就意味着有三个分类索引,这样用户就可选择不同类别的搜索。

 

    这样用户可以选择不同类别来搜索,可以增大命中率。当然也可以选择所有类别来搜索。

 

5 搜索界面

应由java语言写成,提供不同类别的搜索界面,就像雅虎的分类搜索,列出所有的类别。

用户也可以搜索所有类别,但搜索引擎就会跨越所有类别,速度和准确率都会有所下降。

 

6 Handler环境搭建与配置

    Handler是搜索引擎与客户端的中间环节,负责向搜索引擎请求搜索数据,并把返回结果展示给客户端。该部分是基于Ruby on Rails开发的,接下来将带你一步步搭建和配置该环境,并进行测试。

步骤如下:

1) Ruby on Rails的下载与安装

2) 工程文件导入

3) 开启搜索引擎

4) 开启服务器

5) 测试,界面浏览

 

6.1 Ruby on Rails的下载与安装

InstantRails最新版本为2.0,下载地址是

http://rubyforge.org/frs/?group_id=904&release_id=17517

InstantRails是绿色软件,下载完毕后解压即可使用。

 

6.2 工程文件导入

Rails工程文件导入

    将test文件解压到%railsroot%\InstantRails-2.0-win\rails_apps下,其中%railsroot%是InstantRails的安装路径。下图为本机上的解压路径。

 

t4i文件导入

将t4i文件拷贝到%serchroot%\Search\tf\src下,%serchroot%是搜索引擎search所在目录。

 

6.3 开启搜索引擎

建立索引

运行命令提示符,进入搜索引擎search所在目录。输入命令如下:

结果如下:

 

启动搜索引擎

命令如下,执行后程序便会在30001端口监听搜索请求。

6.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,点击“工”字形图标,在弹出网页中选择Rails Applications\Manage Rails Applications...

在弹出的Rails Applications页面下勾选test工程,点击Configure Startup Mode...可以配置端口,这里我使用的是3003端口。点击按钮Start with Mongrel。

服务器启动完毕效果如下:

 

6.5 界面浏览测试

打开IE,键入地址http://localhost:3003/bridge/index ,结果如图7所示:

图7

在图8中输入搜索关键字,如“华为”,点击“search“按钮,可搜索到商品网页。

图8

图9

    如图9中的商品网页,有相关的广告栏位、分类选项、搜索结果等。

    搜索结果的价格可以做比较,点击图9中的“比购一下”按钮,则会弹出各个商家的报价信息(如图10所示),通过价格比较,确保您能找到最低价的商品。

图10

点击图9中标注的“more”,则会出现商品(华为U8800手机)的详细信息,如图11。

图11

搜索结果的图片可以放大,将鼠标放在手机图片上,则会出现华为手机大图(图12)。

图12

 

公司网址:http://www.cxwm.cn
公司邮箱:[email protected]

网友评论