我想将一些Java Lucene代码移植到pylucene(v 2.3.1)。我是 使用 http://svn.apache.org/viewcvs.cgi/lucene/pylucene/trunk/samples/和 中的例子大部分的pylucene似乎进入我的python(Ubuntu 12.04,pydev 2.6.0,eclipse 3.7.2)环境就好了。例如,我能够执行 lucene.initVM()(表示JCC就位)及定义一个波特 词干以下从 采取的示例... /样品/ PorterStemmerAnalyzer.py经由:只有部分的pylucene可用?
self.analyzer = PorterStemmerAnalyzer()
但是当我尝试创建一个新的IndexWriter,它绊倒在 最后一个参数的构造函数:
self.writer = lucene.IndexWriter(self.store, self.analyzer, True, lucene.IndexWriter.MaxFieldLength.LIMITED)
我得到这个错误:
AttributeError: type object 'IndexWriter' has no attribute 'MaxFieldLength'.
这是有我此刻难倒了错误,但也有 其他几个黑客(从他们的版本... /样本)我也取得了 (也担心):
与lucene.LucenePackage
lucene.SimpleFSDirectory与lucene.MMapDirectory
为了远得到这个替换lucene.Version.LUCENE_CURRENT。
http://lucene.apache.org/pylucene/features.html说:“PyLucene API 公开了PyLucene模块中平面命名空间中的所有Java Lucene类。”这似乎并不完全正确, lucene.StopAnalyzer.ENGLISH_STOP_WORDS_SET是pydev已知的,而 lucene.ENGLISH_STOP_WORDS_SET不是。
所以它似乎我得到的/旧版本的一部分/ ...? pylucene 正确使用,但不是全部!?为什么会这样呢?