如何在solr中存储base64编码的字符串,并使用正常文本的solr查询进行搜索

时间:2016-06-01 10:39:25

标签: elasticsearch solr

我使用solr进行数据索引以存储某些字段。我使用字段<field name="Content" type="string" indexed="true" stored="true" multiValued="true"/>,数据采用base64编码格式。

对于字段内容,我想使用纯文本关键字搜索该数据。通过解码base64,我可以在内容中找到该关键字。 (如弹性搜索附件字段类型,我们必须传递base64编码数据,我们可以搜索该数据)

我在solr浏览器上使用查询但无法找到结果:

http://localhost:8983/solr/collection/select?q=Content%3A*English*&wt=json&indent=true

1 个答案:

答案 0 :(得分:0)

Solr不知道您的内容是base64。此外, type = string 未被标记化。

所以,你需要做一些预处理。可能是某个地方的自定义元素。如果你只是想搜索该字段,你可能不需要存储它(只是索引),并且可以有一个自定义的UpdateRequestProcessor进行base64解码。

如果要实际存储字段,则需要将处理作为索引管道的第一步。因此,在进行标记化之前,您需要一个自定义的CharacterFilter。

不幸的是,目前基础发行版中都没有任何组件。您必须使用Java编写代码,或者 - 如果您使用的是UpdateRequestProcessor - in Javascript