pylucene的初始化助手和简单包装器

smc.lucene的Python项目详细描述


lucene模块包装器

lucene模块包装器负责初始化和线程 JCC API中的陷阱。当第一个 对象是从facade模块中检索的。它还连接电流 当JNI虚拟机环境以前没有连接时,它将线程连接到该环境。

包装器还解决了jvm安装自己的信号的问题。 处理程序。默认情况下,jvm会在initvm()中覆盖python的信号处理程序, 从而导致一些难以调试的问题。例如,sigint不再是 翻译成keybaradinterrupt异常。包装器代码恢复所有 信号处理程序到它以前的状态。 只有jvm的sigsegv处理程序留在原地,因为它记录并打印有用的 JVM段故障时的信息。

classpath参数是可选的。当没有设置类路径时,smc.lucene 自动为您添加classpath=lucene.classpath。

示例1-按需初始化lucene

替换如下代码:

import lucene
lucene.initVM(classpath=lucene.CLASSPATH, vmwargs='...')

def query_lucene(...):
    lucene.attachCurrentThread()
    query = lucene.BooleanQuery()
    ...

使用:

from smc.lucene import lucene
lucene.set_initargs(vmargs='...')

def query_lucene(...):
    query = lucene.BooleanQuery()

检索booleanquery属性时会自动初始化lucene 从门面模块。如果pylucene已经初始化了facade模块 确保当前线程已连接。

不能将lucene属性分配给跨线程共享的对象。 如果必须跨线程共享对象,则必须调用lucene.attach() 才能使用对象。

示例2-lucene

的显式初始化

示例:

from smc.lucene import lucene as lucene_wrapper
from lucene import BooleanQuery

def query_lucene(...):
    lucene_wrapper.attach()
    query = BooleanQuery()

attach方法要么初始化lucene,要么附加当前线程。

作者

克里斯蒂安·海姆斯

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java需要设置框架。可设置大小(false)以重新绘制()   java我对PDF文件感到困惑   为什么是太阳。jvm。热点。调试器。DebuggerException:无法打开二进制文件`?   设置结果为textview时出现java空指针异常   我应该使用什么同步原语在Java中实现事件驱动程序框架?   java为什么WindowClosing处理程序在退出程序之前不执行后台任务?   如何将“20170712T18:43:04.000Z”转换为安卓或java中的相对时间?   Java,获取按键的时间长度,currentTimeMillies()始终为24   maven构建的java可执行Jar找不到logback。xml   java在其外部的函数中使用for循环中的值   java如何以表格格式将不同长度的数据对齐   java Play 2.5 WebSocket连接构建   maven而非eclipse的java强制转换问题   java如何在JFreeChart中使X轴上的值水平?   构建Java Windows应用程序以访问在线MySQL数据库需要什么   java添加构造函数会出错吗?这没有道理,请帮忙,编程问题   java在一个jframe中的两个JPanel中使用两个绘制方法   java数学或逻辑问题   java如何复制Androids库存摄像头方向更改