最近想看看关于搜索方面的东西,所以就想从开源的搜索工具包Clucene开始研究下。网上关于Clucene的中文资料不全也不够新,所以摸索起来还比较费力。其实最主要的还是因为自己英语太烂,阅读英文资料太慢,要一边查单词一边看。
1.下载安装
我下载了最新的2.3.3.4版本,安装比较简单,具体如下:
(1)解压: tar -zxvf clucene-core-2.3.3.4.tar.gz
(2)安装cmake以及boost库。cmake以及也没有接触过,而boost不是必须要求,Clucene的源码在/src/ext中提供有。
(3)进入源码解压后的文件夹,并自己新建了一个编译源码的文件夹。
cd clucene-core-2.3.3.4 && mkdir build_clucene
(4)进入新建的文件夹,然后编译安装。
cmake && make && sudo make install
2.自己编译demo
Clucene提供了demo程序,可以在编译时直接使用make cl_demo 进行编译。但是我在自己编译的时候却出现了一些问题,无法编译,一些头文件以及动态库都没发找到,所以我就自己手动指定了。
(1) 指定链接动态库的路径:export LD_LIBRARY_PATH=/home/iven/Download/clucene-core-2.3.3.4/build_clucene/bin/:$LD_LIBRARY_PATH
当然也可以修改/etc/ld.so.conf 文件,指定链接时的搜索动态库的路径。
(2)接下来就是编译demo的源码:
g++ -c *.cpp -I /home/iven/Download/clucene-core-2.3.3.4/src/shared
g++ -o Main *.o /home/iven/Download/clucene-core-2.3.3.4/build_clucene/bin/libclucene-core.so
-I 表示到指定路径搜索头文件。对于第二条命令,如果编译时不加上/home/iven/Download/clucene-core-2.3.3.4/build_clucene/bin/libclucene-core.so 一起编译的话就无法通过。
我觉得上面的编译方法太麻烦了,不知道有没有什么更好的办法,请大神们指点啊!