首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python+Lucene

pylucene让Python可以调用Lucene API实现搜索,这个项目紧跟Lucene的步调,对用惯了Python的同学来说是个福音。 pylucene是通过JCC实现的,JCC读取 jar 包里的public class/method签名,生成C++的包装类,通过JNI(Java Native Interface)调用java的class/mathod。C++代码转成Python的扩展模块,在Python虚拟机里嵌入JVM就可以用了。细节参考http://lucene.apache.org/pylucene/jcc/documentation/readme.html 。 由于Paoding跟Lucene 2.9版本以前的接口是一致的,因此找了一个最接近的PyLucene版本(pylucene 2.4),但里面的JCC比较老了,因此使用了pylucene 3.3的JCC。 下文假定 python 2.7.2安装到 /data/python-2.7.2 目录,相关源码保存在 /data/src 目录。 1 安装 Python 下载Python 2.7.2 切换到解压目录 ./configure --prefix=/data/python-2.7.2 --enable-shared make && make install export LD_LIBRARY_PATH=/data/python-2.7.2/lib 安装包 setuptools wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz#md5=7df2a529a074f613b509fb44feefe74e tar zxvf setuptools-0.6c11.tar.gz cd setuptools-0.6c11 /data/python-2.7.2/bin/python setup.py install 2 安装 JCC 2.10 下载 pylucene-3.3-3-src.tar.gz 切换到解压目录 cd jcc 给 setuptools打补丁 mkdir tmp cd tmp unzip -q /data/python-2.7.2/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg patch -Nup0 < /data/src/pylucene-3.3-3/jcc/jcc/patches/patch.43.0.6c11 sudo zip /data/python-2.7.2/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg -f cd .. rm -rf tmp ln -sf /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64 /usr/lib/jvm/java-6-openjdk /data/python-2.7.2/bin/python setup.py build /data/python-2.7.2/bin/python setup.py install 3 安装 PyLucene + Paoding 下载 pylucene-2.4.1-2-src.tar.gz 和 paoding-analysis-2.0.4-beta.zip tar zxvf pylucene-2.4.1-2-src.tar.gz mkdir paoding cd paoding unzip ../paoding-analysis-2.0.4-beta.zip 切换到 pylucene-2.4.1-2解压目录 vi Makefile 修改内容如下 ... # Linux (Ubuntu 8.10 64-bit, Python 2.5.2, OpenJDK 1.6, setuptools 0.6c9) PREFIX_PYTHON=/data/python-2.7.2 ANT=ant PYTHON=$(PREFIX_PYTHON)/bin/python JCC=$(PYTHON) -m jcc --shared NUM_FILES=2 ... JARS=$(LUCENE_JAR) $(SNOWBALL_JAR) $(HIGHLIGHTER_JAR) $(ANALYZERS_JAR) \ $(REGEX_JAR) $(QUERIES_JAR) $(INSTANTIATED_JAR) $(EXTENSIONS_JAR) \ /data/src/paoding/paoding-

01
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    DB2的JDBC连接

    1:如果数据库为db2,则你所要查找的表前面要加上这个建表的用户名,       如,testTable这张表,我是通过系统登陆的帐号所建,为lixc.testTable;       我所使用查询的用户为admin,如果你只是写select * from testTable ,则       db2只是默认的查找admin.testTable,这张表不存在,所以应该写为:       select * from lixc.testTable    2: 如果你连接数据库的url和driverName都是通过设置文件*.properties来读取的       话,则要注意: 如driverManager:com.ibm.db2.jcc.DB2Driver,如果其后面更有       空格的话,可能在java运行的时候会出现,com/ibm/db2/jcc/DB2Driver这个class文件       未找到的错误。我原来遇见这个情况,如果直接在Class.forName(“driverName”).newInstance();       测试成功,可是读取设置文件Class.forName(driverStr).newInstance();则是报以上错误。       后来将设置文件中后面的空格去掉,程式运行成功。

    04

    VMProtect 3.x- 如何对vmp静态分析(2)

    虚拟分支中最明显的一致性是PUSHVSP的使用。当两个加密值位于VSP + 0、 和的堆栈上时,将执行此虚拟指令VSP + 8。这些加密值使用给定块的最后一个LCONSTDW值解密。因此,可以基于这两个一致性创建一个非常小的算法。算法的第一部分将简单地使用std::find_if反向迭代器来定位给定代码块中的最后一个LCONSTDW。该 DWORD 值将被解释为用于解密两个分支的加密相对虚拟地址的 XOR 密钥。std::find_if现在执行第二个步骤来定位PUSHVSPvirtual 指令,当执行时,两个加密的相对虚拟地址将位于堆栈上。该算法将每条PUSHVSP指令的顶部两个堆栈值解释为加密的相对虚拟地址,并对最后一个LCONSTDW值应用 XOR 运算。

    095

    计时瞬态执行:针对英特尔处理器的新型侧信道攻击

    瞬态执行攻击(Transient Execution Attack)是一种利用现代 CPU 优化技术漏洞的攻击。 侧信道(Side-channel)是瞬态执行攻击泄漏数据的关键部分。 在这项工作中发现了一个漏洞,即瞬态执行中 EFLAGS 寄存器的更改可能会对英特尔处理器中条件代码跳转指令(Jcc,Jump on condition code)产生附加影响。本研究基于此发现提出了一种新的侧信道攻击,它利用瞬态执行和 Jcc 指令的时间来传递数据。 这种攻击将秘密数据编码到寄存器的变化中,这使得上下文的执行时间稍微变慢,攻击者可以通过测量来解码数据。 这种攻击不依赖缓存系统,也不需要手动将 EFLAGS 寄存器重置为攻击前的初始状态,这可能会使其更难检测或缓解。 在配备了 Intel Core i7-6700、i7-7700 和 i9-10980XE CPU 的机器上实现了这个侧信道。 在前两个处理器中结合其作为Meltdown攻击的侧信道,可以达到100%的泄漏成功率。

    05
    领券