我正在嘗試使用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