2012-04-04 50 views
1

我正在嘗試使用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'] 
+0

好的,我想通了。 運行'lucene.initVM()'後,lucene.Version對象將被填充各種版本對象,例如'lucene.Version.LUCENE_35'。 這是構建一個StandardAnalyzer行: 分析= lucene.StandardAnalyzer(lucene.Version.LUCENE_35) – rspeer 2012-04-04 23:56:11

回答

0

我想通了,現在我終於可以張貼此作爲回答:

運行lucene.initVM()後,lucene.Version對象將填充各種版本對象,如lucene.Version.LUCENE_35

而且還有一個工作PyLucene例如在:

http://metaoptimize.com/blog/2010/08/09/pylucene-3-0-in-60-seconds-tutorial-sample-code-for-the-3-0-api/

+0

你是正確的initVM()和版本,但鏈接到教程的例子是過時的和沒有按」 t工作在當前版本的pylucene – alvas 2012-07-04 08:31:25

+1

pylucene有很多不推薦的東西,所以對於較新的API請查看'http:// nullege.com/codes/search/PyLucene' – alvas 2012-07-04 08:45:57

1

這些天的壓縮包爲PyLucene的版本有一個「樣本」目錄中包含的代碼,將與特定版本。