clucenceAPI:http://clucene.sourceforge.net/doc/html/files.html
使用clucene-0.9.21b为例:/clucene-core-0.9.21b/src/demo/中有示例,demo为最好的程序参考
下载:google
为了便于程序移植,在clucene官网file里面下载源码,最好是stable版本
1.编译 CLUCENE 库方法如下
cd clucene-core-0.9.21b
./configure
make
之后src文件夹下会出现各种.o文件和.labs动态链接库2.为了让其它程序可以调用clucene,这里把编译好的lib放到系统lib目录下
cp src/.libs/libclucene.* /usr/local/lib
cp src/CLucene.h /usr/local/include/
cp -r src/CLucene /usr/local/include/
可能出现的常见错误:
常见问题1:
./main: error while loading shared libraries: libclucene.so.0:cannot open share
或者错误:
collect2: ld returned 1 exit status
make: *** [main] Error 1
解决方法:
编辑vim/etc/ld.so.conf,添加一行libclucene.so.0路径/usr/local/lib/libclucene.so.0
ldconfig
如果还不行,则在编译主程序前执行命令
export LD_LIBRARY_PATH=/usr/local/lib
常见问题2:
clucene使用宽字符wchar_t编码,/src/CLucene/util/Misc.cpp中定义了常用的编码转换:
Misc::_cpywideToChar(const wchar_t* s, char* d, size_t len)
Misc::_cpycharToWide(const char* s, wchar_t* d, size_t len)
但是如果对于中文编码,其中会有错误!!!!
clucene中//src/CLucene/config/utf8.cpp定义了中文utf8和宽字符的转码函数,但是Misc.cpp中并没有使用,可用utf8.cpp中的函数:
lucene_utf8towcs(wchar_t * result, const char * str, size_tresult_length)
lucene_wcstoutf8(char * result, const wchar_t * str, size_tresult_length)
重写替换Misc.cpp中的这两个函数,实现如下:
void Misc::_cpywideToChar(const wchar_t* s, char* d, size_tlen){
size_t ret = lucene_wcstoutf8(d,s,len);
}
void Misc::_cpycharToWide(const char* s, wchar_t* d, size_tlen){
size_t ret = lucene_utf8towcs(d,s,len);
}
注意:size_t len有一个宏定义的最大常量可以使用:CL_MAX_DIR
重新编译clucene源码
cd clucene-core-0.9.21b
make