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が配置されていることを示す)を実行し、... / samples/PorterStemmerAnalyzer.pyから取得した例に従ってPorterステマーを定義できます。
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.Version.LUCENE_CURRENTをlucene.LucenePackageに置き換えます
lucene.SimpleFSDirectoryとlucene.MMapDirectory
ここまで到達するために。
http://lucene.apache.org/pylucene/features.htmlには、「PyLucene APIは、PyLuceneモジュールのフラットな名前空間ですべてのJavaLuceneクラスを公開します」と記載されています。これは完全には正しくないようです。lucene.StopAnalyzer.ENGLISH_STOP_WORDS_SETはpydevに認識されていますが、lucene.ENGLISH_STOP_WORDS_SETは認識されていません。
だから私は/の一部/古いバージョンを取得しているようです/...?ピルセンは正しくかみ合ったが、全部ではない!?なぜこれなのか?