当前位置: 首页 > 工具软件 > CLucene > 使用案例 >

clucene安装与使用(1)

司马彬
2023-12-01

clucenceAPIhttp://clucene.sourceforge.net/doc/html/files.html 可以查看各个类的接口

使用clucene-0.9.21b为例:/clucene-core-0.9.21b/src/demo/中有示例,demo为最好的程序参考

下载:google clucene

为了便于程序移植,在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: ld.so.conf

./main: error while loading shared libraries: libclucene.so.0:cannot open share libraries

 

或者错误:

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



 类似资料: