Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Lucene 更新术语';搜索前的s值_Lucene - Fatal编程技术网

Lucene 更新术语';搜索前的s值

Lucene 更新术语';搜索前的s值,lucene,Lucene,我正在使用Lucene 3.6.1 您知道在Lucene实际对包含该术语的文档执行搜索之前,是否有方法更改术语的值(Term.text() 我需要这个预处理,因为值在写入索引时是加密的。虽然我需要做模糊搜索和/或近似搜索时,搜索这个词 致以最诚挚的问候。您想在找到索引之前更改存储在索引中的值吗?不,那没有道理 如果在索引中存储加密数据,则需要使用加密数据进行搜索。如果您需要能够利用适当的文本搜索,只需以未加密的形式对其进行索引即可。我想,除非你使用了某种对文本搜索友好的加密方式。我想,如果它是一

我正在使用Lucene 3.6.1

您知道在Lucene实际对包含该术语的文档执行搜索之前,是否有方法更改术语的值(Term.text()

我需要这个预处理,因为值在写入索引时是加密的。虽然我需要做模糊搜索和/或近似搜索时,搜索这个词


致以最诚挚的问候。

您想在找到索引之前更改存储在索引中的值吗?不,那没有道理

如果在索引中存储加密数据,则需要使用加密数据进行搜索。如果您需要能够利用适当的文本搜索,只需以未加密的形式对其进行索引即可。我想,除非你使用了某种对文本搜索友好的加密方式。我想,如果它是一个简单的密码或其他东西,那么您可以对索引值和查询以及搜索进行加密。除此之外,我不认为对加密数据使用模糊搜索是可行的

我的建议是:

您可以为字段的未加密形式编制索引,但不能存储,这样您就可以根据需要利用搜索

然后可以创建一个存储加密字段的字段,以存放该字段的可检索版本。是否索引该字段取决于在某些情况下是否可以使用加密数据搜索哪个字段,但我猜不会

比如:

Document.add(new Field('fieldname', value, Field.Store.NO, Field.Index.ANALYZED);
Document.add(new Field('fieldnameencrypted', value, Field.Store.YES, Field.Index.NO);

只能搜索fieldname,但只能从找到的文档(以加密形式)中检索fieldname encrypted。

要在找到索引之前更改存储在索引中的值吗?不,那没有道理

如果在索引中存储加密数据,则需要使用加密数据进行搜索。如果您需要能够利用适当的文本搜索,只需以未加密的形式对其进行索引即可。我想,除非你使用了某种对文本搜索友好的加密方式。我想,如果它是一个简单的密码或其他东西,那么您可以对索引值和查询以及搜索进行加密。除此之外,我不认为对加密数据使用模糊搜索是可行的

我的建议是:

您可以为字段的未加密形式编制索引,但不能存储,这样您就可以根据需要利用搜索

然后可以创建一个存储加密字段的字段,以存放该字段的可检索版本。是否索引该字段取决于在某些情况下是否可以使用加密数据搜索哪个字段,但我猜不会

比如:

Document.add(new Field('fieldname', value, Field.Store.NO, Field.Index.ANALYZED);
Document.add(new Field('fieldnameencrypted', value, Field.Store.YES, Field.Index.NO);

只能搜索fieldname,但只能从找到的文档(以加密形式)中检索fieldname encrypted。

谢谢您的回答。我的问题是索引不能容纳未加密的版本,我必须在这个字段上执行“开始于”搜索。所以我无法比较这两个加密字符串。如果在搜索之前没有其他解决方案执行解密,我将尝试存储未加密的版本。有人能证实这个假设吗?肯定有解决办法。检索索引中的每个文档,取消加密,并检查它们是否与您的查询匹配。不过,你会发现使用CSV比使用Lucene更容易,也可能更快。否则,你不能两全其美。如果您希望对其进行安全加密,则无法对其进行有效搜索。如果您允许人们查询它,那么它的安全性会受到一定程度的损害,因为无论storange方法如何,都可以查询它的内容。好的,我将尝试利用这些信息开发一个解决方案。非常感谢;)谢谢你的回答。我的问题是索引不能容纳未加密的版本,我必须在这个字段上执行“开始于”搜索。所以我无法比较这两个加密字符串。如果在搜索之前没有其他解决方案执行解密,我将尝试存储未加密的版本。有人能证实这个假设吗?肯定有解决办法。检索索引中的每个文档,取消加密,并检查它们是否与您的查询匹配。不过,你会发现使用CSV比使用Lucene更容易,也可能更快。否则,你不能两全其美。如果您希望对其进行安全加密,则无法对其进行有效搜索。如果您允许人们查询它,那么它的安全性会受到一定程度的损害,因为无论storange方法如何,都可以查询它的内容。好的,我将尝试利用这些信息开发一个解决方案。非常感谢;)