2012年4月17号,我从lemur(狐猴)http://www.lemurproject.org/官网下载了Indri-5.2-install.exe。我开始安装这个软件,过程中选择了一个“full”,安装在D:\lemur\目录下,安装完成后其中有多个文件夹,还有一个license文件和一个uninst卸载程序,就这些东西。经过查看,bin文件夹中是一些C++程序debug后或release后产生的那种应用程序,doc文件夹里是一些html文件,include文件夹里是一些C++头文件,src文件夹里比较复杂,看上去好像是开源的原程序内容。剩下的几个文件夹的内容就不认识了。
接下来先说测试indribuildindex命令,其实就是bin文件夹下的一个应用程序,这个程序的int main(int argc, char * argv[])需要从命令行中接受参数,即cmd中的命令是:indribulidindex …… 这种格式。网上的查到的信息都说这个参数是index操作的参数文件的路径的字符串常量值。我打开\src\buildindex\indribuildindex.cpp看了下代码,发现除了是文件路径外,还可以是多个变量赋值语句,而且格式是这样的:-parametername=parametervalue,前边有横行,中间有等号,这个地方不多说,继续往下。我在D:\lemur_para_file\下,按照网上的格式做了这样一个txt文件para1.txt:
1 <parameters> 2 3 <memory>200m</memory> 4 5 <index>D:/index/myIndex</index> 6 7 - <corpus> 8 <path>D:/lemur_source_text/Obama.txt</path> 9 <class>trectext</class> 10 </corpus> 11 12 </parameters>
还有另一个para2.txt:
1 <parameters> 2 3 <memory>200m</memory> 4 5 <index>D:/index/myIndex</index> 6 7 - <stemmer> 8 <name>krovetz</name> 9 </stemmer> 10 11 - <corpus> 12 <path>D:/lemur_source_text/Obama.txt</path> 13 <class>trectext</class> 14 </corpus> 15 16 17 - <field> 18 <name>gkm</name> 19 </field> 20 21 </parameters>
cmd命令行在bin目录下,输入bin>indribuildindex D:\lemur_para_file\para1.txt(或para2.txt),都可以执行成功。注意以下几点:
1.命令中para1.txt,“txt”后缀不能丢,否则命令失败。
2.参数文件中<index>D:/index/myIndex</index>,index文件夹必须已存在。
这样初识lemur第一条index命令就执行了。
下面说说对于lemur开源代码的编译,我用的vs2008,按照http://www.lemurproject.org/lemur/lemur-creating-applications.php#q3来对swig配置好后,“编译”可以成功,“生成解决方案”成功20个。但是用vs2010时,可以编译成功,生成解决方案时会有很多错误。