2012-04-04 51 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的版本有一个“样本”目录中包含的代码,将与特定版本。