使用 jcc 在 pylucene/inheritance 中编写自定义分析器?
我想用 pylucene 编写一个自定义分析器。 通常在java lucene中,当你编写一个分析器类时,你的类继承了lucene的Analyzer类。
但 pylucene 使用 jcc ,即 java 到 c++/python 编译器。
那么如何使用 jcc 让 python 类继承 java 类,特别是如何编写自定义 pylucene 分析器?
谢谢。
I want to write a custom analyzer in pylucene.
Usually in java lucene , when you write a analyzer class , your class inherits lucene's Analyzer class.
but pylucene uses jcc , the java to c++/python compiler.
So how do you let a python class inherit from a java class using jcc ,and especially how do you write a custom pylucene analyzer?
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
以下是包装 EdgeNGram 过滤器的分析器示例。
这是重新实现 PorterStemmer
Checkout 的另一个示例
perFieldAnalyzerWrapper.java
还有 KeywordAnalyzerTest.py
Here's an example of an Analyzer that wraps the EdgeNGram Filter.
Here's another example of re-implementing PorterStemmer
Checkout
perFieldAnalyzerWrapper.java
also KeywordAnalyzerTest.py
您可以从 pylucene 中的任何类继承,但名称以 Python 开头的类也将 扩展底层 Java 类,即,在从 Java 代码调用时使相关方法成为“虚拟”。因此,对于自定义分析器,请继承PythonAnalyzer并实现tokenStream方法。
You can inherit from any class in pylucene, but the ones with names that start with Python will also extend the underlying Java class, i.e., make the relevant methods "virtual" when called from java code. So in the case of custom analyzers, inherit from PythonAnalyzer and implement the tokenStream method.