【问题标题】:Best way to index base64 encoded string into ElasticSearch将 base64 编码字符串索引到 ElasticSearch 的最佳方法
【发布时间】:2016-07-28 12:23:09
【问题描述】:

我正在使用 Spring-Data-ElasticSearch 将整个对象索引为 Elastic 中的文档。其中一个字段是用户上传文件的字符串类型 base64 编码。

@Document(indexName = "user_record")
public class UserRecord {

    private String base64UserUploadFile;

...

目前,这个 base64 字符串被直接索引到 Elastic 中,因此无法搜索,所以我想知道如果我希望能够从该文件中搜索实际内容,而不必将此字段转换为实际文件,那么我的选择是什么我班上的内容字符串?

【问题讨论】:

    标签: elasticsearch base64 spring-data-elasticsearch


    【解决方案1】:

    您可能想要使用mapper-attachments 插件并使用Attachment 字段类型声明您的字段

    @Document(indexName = "user_record")
    public class UserRecord {
    
        @FieldType(type = FieldType.Attachment, store = false)
        private String base64UserUploadFile;
    
    ...
    

    这样,Base64 内容将被编入索引并可供搜索。如果您不想不必要地膨胀索引,我建议不要存储内容(因此store=false)。

    【讨论】:

    • 你试过了吗?
    • 对不起,我无法让它工作。我确实看过它,但发现我们当前项目中使用的 ES 太旧了,1.7.2,Spring Data ES 1.5 没有对映射器附件的原生支持。所以现在我正在尝试升级 ES,但需要一些努力,因为这个 ES 也被我们项目中的其他组件使用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-10
    • 1970-01-01
    • 1970-01-01
    • 2011-04-22
    • 1970-01-01
    相关资源
    最近更新 更多