OrientDB:让Lucene在通过ODocumentHookAbstract

时间:2015-05-06 00:54:34

标签: encryption lucene orientdb

我正试图让我了解如何让Lucene使用服务器端挂钩改变其值的字段 - 我正在使用OrientDB 2.0.8。 这是我的情景:

  1. 我定义了一个包含的小模式 - '学生'VertexType - 'Student'顶点类型的'name'字符串属性 - 此'name'属性的Lucene索引

  2. 我按如下方式实现ODocumentHookAbstract: - 在构造函数中我包括:setIncludeClasses(“Student”) - onRecordBeforeCreate - 如果'name'属性不是NULL,我加密它 - onRecordBeforeUpdate - 我加密'name'属性,如果它不是NULL(如前一个方法的情况);我返回RESULT.RECORD_CHANGED - onRecordBeforeRead - 我解密'name'属性并返回RESULT.RECORD_CHANGED

  3. 我在数据库中加入了一些“学生”

  4. 我尝试运行表单查询:SELECT * FROM Student WHERE name LUCENE'前缀*'

  5. 假设我有一个名为'John'的学生,我的期望是如果提供的'前缀'是'Jo',则查询返回'John' - 因此透明地通过加密 - 解密阶段。但是,这不会发生 - 即查询不返回John。另一方面,如果我查询John的加密值,我可以检索它。

    你能否告诉我在这种情况下我做错了什么?基本上,我想要的是隐藏加密步骤,但仍然能够查询全文索引,好像加密不存在一样。

    谢谢! 铎

0 个答案:

没有答案