ElasticSearch 忽略实体类中某个字段到mapping映射

在项目中遇到一个问题,因业务问题需要再实体类中冗余一个字段,且该字段没必要生成ES Mapping,经过一番研究、搜索之后终于得到解决,可使用 @Transient 注解(需注意,注解为java.beans.Transient) 标记在该字段的setter方法上,这样在使用ES.index时,则不会将该字段映射到ES mapping中 

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Elasticsearch,当你为对应的实体类添加新的字段时,你需要更新你的索引映射Mapping)以适应这些变化。这是因为Elasticsearch是基于文档模型的,每个索引都有其特定的结构定义,包括字段名、数据类型等信息。 以下是处理新字段添加的步骤: 1. **更新映射Mapping)**: - 如果字段是新创建的,你需要在索引的配置文件(通常是`.json`格式)添加这个字段,比如: ```json { "mappings": { "your_type": { "properties": { "new_field": { "type": "text" 或 "keyword" 或其他合适的数据类型 } } } } } ``` 确保替换"your_type"为你的实际类型名称。 2. **重新索引或刷新数据**: - 如果你只是添加了字段,而文档的值尚未填充,可以使用`update_by_query` API 或 `reindex` API,将已有文档映射到新结构。 - 如果已有值,那么通常需要重新索引整个索引,这会更新所有文档的映射。 ```bash curl -X POST "localhost:9200/your_index/_reindex" --data-binary '{"source": {"index": "old_index"}, "dest": { "index": "new_index" }}' ``` 3. **验证和更新客户端代码**: - 在使用Elasticsearch客户端(如Elasticsearch.Net、Java的Elasticsearch Client等)时,也需要相应地更新代码,确保能正确地访问和操作新增的字段。 4. **可能需要的更新**: - 如果字段是用于搜索和聚合的,你可能需要更新搜索查询和聚合设置,以便正确处理包含新字段的查询。 - 如果字段有特殊的存储需求(如分析器、分词规则等),也要在映射指定。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值