zoukankan      html  css  js  c++  java
  • 在FreeBSD 上配置 Sphinx 搜索引擎

     在FreeBSD 上配置 Sphinx 搜索引擎 和 linux 上相比,会有一些差异,而且步骤可能会更加的繁琐。

    有些可能无法用 make 系统进行编译,必须手动修改configure 文件,或者代码。或者只能手动编译。

    1. 安装 Mmseg

    http://www.coreseek.cn/uploads/sources/mmseg-0.7.3.tar.gz

      Mmseg 比较成熟,安装的过程一般不会出什么问题。但是还是有一些注意事项:

    要下载最新的 0.7.3版本,否则可能会有下面的bug

    1. 不兼容 x64 的操作系统,我的系统就是64位的,一编译,发现出问题了。

    2. 可能有很多分词的bug,在中英文混合的时候,分词会非常的不准确。

    要手动构造一下词典。如下命令:

    mmseg -u unigram.txt

    这就会产生一个 :unigram.txt.uni ,用如下的命令重命名:mv unigram.txt.uni uni.lib

    2. 安装下面的程序:

    更新最新的Port ,然后,升级或者安装下面的程序:

    1. Python 2.5 以上

    2. autoconf-2.4 以上

    3. automake 1.10 以上

    4. Bison 2.3 以上

    5. Gmake 3.5 以上

    6. Libtool 2.2 以上

    当然,如果你编译过程中没有出现问题最好,但是,如果出现问题了,建议先升级以上程序。

    如果以上软件都升级好了,下载最新 的 3.1 rc1 版本。(coreseek sphinx的改动版本)

    http://www.coreseek.cn/uploads/csft/3.1/Source/csft-3.1.tar.gz

    然后,编译。

    我测试过,这个编译没有什么问题。

    3、安装libsphinxclinet

    如果要安装sphinx PHP扩展,就要事先编译libsphinxclinet。你要去官方网站下载最新的sphinx 程序。

    Wget http://sphinxsearch.com/downloads/sphinx-0.9.9-rc2.tar.gz

    Tar -xzf sphinx-0.9.9-rc2.tar.gz

    Cd sphinx-0.9.9-rc2/api/libsphinxclinet

    你不能直接编译这个程序,在linux 下面可以。但是,在FreeBSD 上并不可以。

    configure: error: C++ preprocessor "/lib/cpp" fails sanity check

    这个错误怎么修改才能改好,我暂时没有去研究。一般来说,解决的方法可以这样:

    1. gcc 命令直接编译。

    2. automake 重新创建一份编译程序。

    下面说明一下,如何用gcc 命令编译一份动态链接库。

    库文件简介:

    简单地说,库(Library)就是一组已经写好了的函数和变量、经过编译代码,是为了能够提高开发效率和运行效率而设计的。库分为静态库(Static Library)和共享库(Shared library)两类。静态库文件的扩展名是.a,共享库文件的扩展名是.so(在CYGWIN环境下,分别叫做.o.dll)。共享库现在常常被叫做动态库,是由于很多人借用了MS WindowsDLLDynamic Linked Library)这个词。

    1)静态库

         静态是指每个用到该库的应用程序都拥有一份自己的库拷贝;应用程序运行的时候,即使将库删除也没有问题,因为应用程序自己已经有了自己的拷贝。

    2)共享库

         一个共享库有可能被多个所有应用程序共享。因此,对每个应用程序来说,即使不再使用某个共享库,也不应将其删除。此外,应用程序需要正确的环境变量设置(LD_LIBRARY_PATH),从而找到共享库所在的位置,否则,应用程序运行时会报告找不到这个库。

    一般来说,如果库本身比较大的话,最好编译成 共享库,否则,联合编译后,文件会变的比较大。对于上面的 libclientsphinx ,应为规模比较小,编译成静态的或者动态的都可以。我这里选择编译成动态的:

    mv sphinx_config,h.in sphinx_config.h

    gcc -c -fPCI sphinx.c

    gcc -shared -fPIC -o libsphinxclient.so sphinx.o

    Mv libsphinxclient.so  /usr/local/lib

    Mv sphinx.h /usr/local/include

    这样就可以编译成功了。

    编译PHP 就比较简单了

    Cd /ext path/sphinx

    Phpize

    ./configure --with-php-config=/usr/local/bin/php-config --with-sphinx=/usr/local

    Make

    make install

    这样就OK 了。当然,如果你的extension_path 改动过的话,把编译好的扩展放到合适的位置上去。

  • 相关阅读:
    UESTC 250 windy数 数位dp
    hdu 3555 bomb 数位dp
    hdu 2089 不要62 数位dp入门
    poj 3740 Easy Finding 精确匹配
    codeforces 589F. Gourmet and Banquet 二分+网络流
    hdu 3572 Escape 网络流
    hdu 3572 Task Schedule 网络流
    POJ 1823 Hotel 线段树
    2016年,机器学习和人工智能领域有什么重大进展?
    【由浅入深的VR技术之旅】初学VR要解决的三个核心技术问题
  • 原文地址:https://www.cnblogs.com/niniwzw/p/1586881.html
Copyright © 2011-2022 走看看