如何防止单个字段存储在_source中

问题描述 投票:0回答:1

我有一个可通过Hibernate Search 5.6.5和Elasticsearch 2.4.6搜索的模型。

@Entity
@Indexed
class Model {

     @Field
     String normalField;

     @Field
     @Lob
     String reallyBigField;
}

我不希望Elasticsearch存储reallyBigField。 Hibernate Search提供了@Field(store = Store.NO)属性,但它是默认的,看起来,Elasticsearch将以不同于Lucene的方式处理store-property(Lucene不存储任何内容,Elasticsearch具有单独的source-store)。

elasticsearch hibernate-search
1个回答
2
投票

使用Store.NO会禁用字段级别的存储。现场级别的存储在我们当前的Search 5.x Elasticsearch集成中并未真正使用。

你是对的,Elasticsearch还将内容存储在一个单独的_source字段中,这是我们现在用于Hibernate Search中的预测的(由于Elasticsearch的一些限制 - 我们将来可能会做得更好)。

您可以通过修改映射来禁用_source中的此特定字段:https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-source-field.html#include-exclude。但我们不支持开箱即用,因此您必须手动完成。

© www.soinside.com 2019 - 2024. All rights reserved.