TSE部署实践

系统环境:ubuntu12.04

编译环境:g++4.1.2     gcc4.1.2

 1.      环境部署

  1. a.  g++安装

    由于ubuntu12.04在安装apt-get install buildessential 后的g++版本是4.6 ,而TSE需要低版本,所以首先需部署C++环境:

             $ sudo apt-get install g++4.1.2

          b. gcc源码安装

    在安装过程中发现源中没有gcc4.1.2 , 所以用源码安装:

    1)  下载&解压源码

      $ wget http://ftp.gnu.org/gnu/gcc/gcc-4.1.2/gcc-4.1.2.tar.bz2

      $ tar xvjf gcc-4.1.2.tar.bz2

    2) 安装依赖库, 以及软件

      $ sudo apt-get install libc6-dev libgmp-dev libmpfr-dev texinfo

    3) 为头文件以及所需库添加链接

      添加如下链接, 这取决于你的 Ubuntu 系统架构, 如果你使用的是64位的ubuntu系统应当使用x86_64-linux-gnu替代i386-linux-gnu

      $ cd /usr/include

      $ sudo ln -s i386-linux-gnu/bits bits

      $ sudo ln -s i386-linux-gnu/gnu gnu

      $ sudo ln -s i386-linux-gnu/sys sys

      $ sudo ln -s i386-linux-gnu/asm asm

      $ cd /usr/lib

      $ sudo ln -s i386-linux-gnu/crt1.o crt1.o

      $ sudo ln -s i386-linux-gnu/crti.o crti.o

      $ sudo ln -s i386-linux-gnu/crtn.o crtn.o

   4) 编译gcc

      $ cd gcc-4.1.2

      $ mkdir build

      $ cd build

      $ ../configure --prefix=/usr/local --program-prefix=sse- --libexecdir=/usr/local/lib --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --disable-       multilib --enable-languages=c,c++

      $ make bootstrap

   5) 安装gcc

                 $ make install

      $ cd /usr/local/bin

      $ ll *gcc*

      看到类似以下几个文件, 安装就完成了

      i686-pc-linux-gnu-gcc-4.1.2 i686-pc-linux-gnu-ssegcc ssegcc ssegccbug

   6) 切换到当前4.1.2版本

      $ sudo ln -sf /usr/local/bin/i686-pc-linux-gnu-gcc-4.1.2 /usr/bin/gcc

      $ sudo ln -sf /usr/local/bin/i686-pc-linux-gnu-sse-g++ /usr/bin/g++

      终端输入:

      $ gcc -v  

      $ g++ -v

      当现实版本为4.1.2时,则配置成功。

   c. 安装zlib

    从 http://pan.baidu.com/s/1c0CaiHE 下载zlib1.2.3并编译安装:

      $ tar xvzf zlib-1.2.3.tar.gz

      $ cd zlib-1.2.3

      $ ./configure

      $ make

      $ sudo make install

   d.安装包flex

    在终端输入:

    $ sudo apt-get install flex bison

2.    安装部署TSE 的index包

  a. 安装Apache2 服务器

     $sudo apt-get install apache2

     打开,关闭,重起Apache2的命令:

     打开:sudo /etc/init.d/apache2 start

     关闭:sudo /etc/init.d/apache2 stop

     重起:sudo /etc/init.d/apache2 restart

  b. 编译index

    1) 下载

     在 http://net.pku.edu.cn/~webg/src/TSE/ 下载index.090422-2245.Linux.tar.gz ,打开终端,输入:

               $ tar xvzf index.090422-2245.Linux.tar.gz

               $ cd index

               $ sudo make

    2)配置文件

    将make好后的index目录下所有文件放到 /var/www/html/yc-cgi-bin/index中(没有的路径需自行创建相关文件夹)

    把tar后index/public_html中的所有文件移到/var/www/html中

    建立/var/www/html/yc/TSE,并把index/public_html中的文件发到其中。

  c. 修改配置文件

    1) 配置文件存放在etc/apache2/ 这个文件夹下,首先配置:

       etc/apache2/conf.d/charset

       最后添加一行:AddDefaultCharset GB2312

    2) etc/apache2/sites-available/default

      这个是网站目录配置,想更改网站目录的话,需修改这个。终端执行

      $ cd /etc/apache2/sites-available

      $ sudo cp default default_backup

      $ sudo gedit default

                     打开后做如下更改:

        DocumentRoot /var/www/

                       <Directory />

                           Options FollowSymLinks

                             AllowOverride None

                       </Directory>

                       <Directory /var/www/>

      改为

        DocumentRoot /var/www/html/

                       <Directory />

                           Options FollowSymLinks

                           AllowOverride None

                       </Directory>

                       <Directory /var/www/html/>

      将

      ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

            <Directory "/usr/lib/cgi-bin">

      改为:

      ScriptAlias /yc-cgi-bin/index/ /var/www/html/yc-cgi-bin/index/

        <Directory "/var/www/html/yc-cgi-bin/index/">

                   这样修改就不需要在程序中再改路径了。

  d. 重启apache2

    sudo /etc/init.d/apache2 restart

    打开浏览器,输入http://localhost/public_html/

    就出现了北大天网的搜索页面,测试可用!如下图

  e. PS:网站发布

PS: 如果发布该网站,需要做如下工作:

1. 修改Aparche服务器的端口号

     1)sudo gedit /etc/apache2/ports.conf

     有如下内容:

     NameVirtualHost*:80

     Listen 80

    改为

     NameVirtualHost*:9001

     Listen 9001

   2)sudo gedit /etc/apache2/sites-enabled 000-default

      将第一行<VirtualHost *:80>改为<VirtualHost *:9001>

2. 修改服务器所在PC机的IP

这一步主要是针对内网服务器,将机器的IP有自动分配IP改为手动固定IP,再把相应的网关,DNS等修改完

//到此,关闭重启Apache,sudo /etc/init.d/apache2 stop

sudo /etc/init.d/apache2 restart,你可以在内网内访问你的网页,例如http://你修改过的Ip:9001

3. 修改内网路由器

   将9001端口号映射到路由器公网上的端口号。

//现在关闭重启Apache,sudo /etc/init.d/apache2 stop

sudo /etc/init.d/apache2 restart,就可以在往往访问你的网页了。例如:http://公网IP:9001.

3.安装部署TSEtse抓取工具包

  a) 下载编译

    从 http://net.pku.edu.cn/~webg/src/TSE/ 下载tse.081227-1441.Linux.tar.gz    ,命令行输入:

            $ tar xvzf tse*

            $ cd tse

            $ sudo make

           

  b) 运行搜集网页

    1)终端输入:

$ sudo nohup ./Tse -c tse_seed.pku &

运行这句代码的时候,TSE的蜘蛛就开始去网络上抓取页面了。爬取后会得到10个Tianwang.raw.*****在tse的文件夹下。

    2)        

选取一个移到tar 后的index文件中。打开index中的DocIndex.cpp, Comm.h, Snapshot.cpp找到其中的Tianwang.raw.2559638448 改成 Tianwang.raw.*****,

注意,*****的数字应为你之前移到Index中的那个。

    3) 重新打开终端:

$ cd index

$ sudo make

$ ./DocIndex

打开生成的Doc.idx记住最后的数字。打开DocSegment.cpp按源码的提示将MAX_DOC_ID的值改为此数字。

 

    4) 在终端再次 make

$ sudo make

$ ./DocIndex got Doc.idx, Url.idx, DocId2Url.idx

$ sort Url.idx|uniq > Url.idx.sort_uniq

$ ./DocSegment Tianwang.raw.×× got Tianwang.raw.××.seg

$ ./CrtForwardIdx Tianwang.raw.××.seg > moon.fidx

$ set | grep “LANG”

LANG=en; export LANG;

$ sort moon.fidx > moon.fidx.sort

$ ./CrtInvertedIdx moon.fidx.sort > sun.iidx

   将得到的sun.iidx, Url.idx.sort_uniq放到/var/www/html/yc-cgi-bin/index/Data文件夹中

4. 参考文献

在自己搭建TSE的过程中查看了很多网上的内容,文中很多内容很多来自前辈的文章,在此将其文章链接提供如下:

gcc 部署安装:

http://blog.csdn.net/vsooda/article/details/9294293

TSE 参考链接:

http://hcsem.com/145/

http://blog.csdn.net/leonsc/article/details/6422094

http://hi.baidu.com/sunnnnnnnnny/item/6637d53e2616be0bcfb9febf

http://blog.csdn.net/leonsc/article/details/6420520

原文地址:https://www.cnblogs.com/xkaisun/p/3585470.html