1

我正在尝试使用 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 对象的参数.

那么我从哪里得到一个版本对象呢?

以下内容已出现在代码示例中,但实际上不起作用:

  • 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']
4

2 回答 2

1

现在,PyLucene 版本的 tarball 有一个“samples”目录,其中包含适用于该特定版本的代码。

于 2014-05-31T21:48:52.060 回答
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/

于 2012-04-05T20:22:49.487 回答