V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zhuwd
V2EX  ›  Java

初学者关于 Spring-Data-ElasticSearch 的一个问题,不知道大佬们能不能看到

  •  
  •   zhuwd · 2018-10-25 08:39:46 +08:00 · 3722 次点击
    这是一个创建于 2256 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我在 pojo 中定义了 3 个字段,但是只想把其中的 2 个索引到 es 里面,需要忽略某个字段。我尝试使用 @Field(ignoreFields = {}) 注解,但是不起作用,有点纳闷这个注解的作用,请问有什么办法可以忽略某个字段吗?

    5 条回复    2018-10-25 14:30:21 +08:00
    ShadowFox
        1
    ShadowFox  
       2018-10-25 08:55:31 +08:00
    @JsonIgnore
    Spring-Data-ElasticSearch 在与 es 进行数据交互前都会先将数据序列化成 json,所以让 jackson 忽略这个字段即可
    zhuwd
        2
    zhuwd  
    OP
       2018-10-25 08:57:08 +08:00
    @ShadowFox jackson 确实是可以的,但是如果我的前台需要查询这个实体列表的话,对应的字段也就被忽略了。。。
    ShadowFox
        3
    ShadowFox  
       2018-10-25 09:19:08 +08:00
    @zhuwd #2 这我就不太清楚了,ignoreFields 只是忽略注解下的字段中的字段,而不是忽略这个字段本身;
    有个思路你可以试试:把 elasticsearch:transport-client 中的 DefaultEntityMapper 改成一个自定义的 EntityMapper,然后用这个 EntityMapper 去掉那些不需要的字段
    zhuwd
        4
    zhuwd  
    OP
       2018-10-25 09:42:21 +08:00
    @ShadowFox 好的,我去试一下,谢谢老哥!
    knightlhs
        5
    knightlhs  
       2018-10-25 14:30:21 +08:00
    在 es 里面建立 Mapping 为指定字段设置为不建立索引即可
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1183 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 18:11 · PVG 02:11 · LAX 10:11 · JFK 13:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.