我正在尝试使用PyLucene,而且我找不到任何实际运行在我当前版本中的代码示例。 (例如,参见http://nullege.com/codes/search/PyLucene.StandardAnalyzer)。如何在pylucene 3.5中实例化StandardAnalyzer? Version对象在哪里?
在某些情况下,您需要实例化分析器。这似乎应该通过调用lucene.StandardAnalyzer()来完成。然而,这给出了一个错误:
lucene.InvalidArgsError: (<type 'StandardAnalyzer'>, '__init__',())
的原因错误是很明确的:StandardAnalyzer文档,在http://lucene.apache.org/core/old_versioned_docs/versions/3_0_3/api/core/index.html说,这需要一个参数,它是一个版本的对象。
那么我在哪里得到一个版本对象?
下面的东西都出现在代码样本,但不实际工作:
- lucene.Version.LUCENE_CURRENT
- lucene.Version.LUCENE_30
这些名字是不确定的。下面是我的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']
好的,我想通了。 运行'lucene.initVM()'后,lucene.Version对象将被填充各种版本对象,例如'lucene.Version.LUCENE_35'。 这是构建一个StandardAnalyzer行: 分析= lucene.StandardAnalyzer(lucene.Version.LUCENE_35) – rspeer 2012-04-04 23:56:11