Xapian使用入门

2022-04-27 00:00:00 执行 编译 启动 安装 比赛

  一篇拖了两三年的入门总结文章,今天发出来,一方面是自己的总结,另一方面是给自己和他人的备忘。读者需要对搜索引擎有初步了解,譬如了解倒排、term、doc、相似度打分等概念。

       Xapian是一个C++搜索引擎内核,提供了类似Lucene的功能,功能没有Lucene丰富,但可以满足常见的搜索需求:倒排检索、与或非查询、相关性打分排序等。

       下面对Xapian入门使用做介绍。

1、Xapian安装-Linux

下面介绍Linux下的编译安装。

(1)下载源码

从https://oligarchy.co.uk/xapian(推荐)或者 https://github.com/xapian/xapian 下载xapian-core包。从github下载的包不包括./configure文件,需要自己使用autoconf生成。xapian-core不同版本对GCC有不同要求,可以看github下的INSTALL文件。

(2)解压&安装

解压:xz -d xx.tar.xz    tar xvf xx.tar                                                                                

配置动态库:./configure --prefix=[your install path]                                                              

配置静态库:./configure --prefix=[your install path]  --enable-static=yes --enable-shared=false 

编译安装:make –j2 && make install

注1:如果你编译出来的xapian lib静态库要作为你so库的一部分,那么在./configure 命令加上一句: CXXFLAGS=-fpic
注2:valgrind 检查可能会执行很久,修改./configure 禁止掉它:在使用VALGRIND之前增加一行:VALGRIND=

2、Xapian安装-windows

这里采用MSVC做编译链接,方便后续对xapian源码做单步调试。因为对msys、vs命令行不熟悉,折腾了很久,特别感谢作者olly在xapian邮件组提供的帮助。

环境:windows 7 &  Visual Studio 2017

源码包:xapian-core-1.4.10 (注意:xapian1.2到1.4之间的一部分版本不支持windows编译安装)

步骤如下:

1. 安装Visual Studio 2017

2. 安装msys2。下载地址:http://repo.msys2.org/distrib/x86_64/msys2-x86_64-20180531.exe;

2.1 在msys2下安装make,需要设置镜像地址,参考:https://blog.csdn.net/callinglove/article/details/48601775

3. 安装zlib。可以直接使用编译好的32位版本,下载地址: http://gnuwin32.sourceforge.net/downlinks/zlib-lib-zip.php

4. 启动msys2。首先,启动cmd;然后,在cmd下执行VS2017的环境变量批处理——vcvars32.bat(因为zlib是32位的,所以这里也选择32位),譬如:C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Auxiliary\Build\vcvars32.bat;接着,继续在cmd下启动msys2, 命令:msys2_shell.cmd -use-full-path;然后,在msys2 shell下面执行 which cl,确认能找到cl;

5、在msys2下,进入到代码目录,执行configure:

./configure LD=link CC="cl -nologo" CXX="$PWD/compile cl -nologo" CXXFLAGS="-EHsc -Z7" AR=lib CPPFLAGS=-IC:/zlib-1.2.3-lib/include LDFLAGS="-LC:/zlib-1.2.3-lib/lib" --prefix="C:/xapian-install"

相关文章