我正在尝试使用PyLucene,我找不到任何实际在我当前版本中运行的代码示例。 (例如,参见http://nullege.com/codes/search/PyLucene.StandardAnalyzer)。
在某些时候,您需要实例化分析器。似乎应该通过调用lucene.StandardAnalyzer()来完成。但是,这会产生错误:
lucene.InvalidArgsError: (<type 'StandardAnalyzer'>, '__init__', ())
错误的原因非常明显:位于http://lucene.apache.org/core/old_versioned_docs/versions/3_0_3/api/core/index.html的StandardAnalyzer文档说它需要一个Version对象的参数。
那么我从哪里获得Version对象?
代码示例中出现了以下内容,但实际上并不起作用:
这些名称未定义。这是我的lucene.Version类中的内容:
>>> print dir(lucene.Version)
['__class__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '_jobject', 'cast_', 'class', 'compareTo', 'declaringClass', 'equals', 'getClass', 'getDeclaringClass', 'hashCode', 'instance_', 'name', 'notify', 'notifyAll', 'of_', 'onOrAfter', 'ordinal', 'parameters_', 'toString', 'valueOf', 'values', 'wait']
答案 0 :(得分:1)
目前,PyLucene发布的tarball有一个'samples'目录,其中包含可与该特定版本一起使用的代码。
答案 1 :(得分:0)
我想通了,现在我终于发布了这个答案:
运行lucene.initVM()
后,lucene.Version对象将填充各种版本对象,例如lucene.Version.LUCENE_35
。
还有一个有效的PyLucene示例: