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

2018-10-25 08:39:46 +08:00
 zhuwd

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

3517 次点击
所在节点    Java
5 条回复
ShadowFox
2018-10-25 08:55:31 +08:00
@JsonIgnore
Spring-Data-ElasticSearch 在与 es 进行数据交互前都会先将数据序列化成 json,所以让 jackson 忽略这个字段即可
zhuwd
2018-10-25 08:57:08 +08:00
@ShadowFox jackson 确实是可以的,但是如果我的前台需要查询这个实体列表的话,对应的字段也就被忽略了。。。
ShadowFox
2018-10-25 09:19:08 +08:00
@zhuwd #2 这我就不太清楚了,ignoreFields 只是忽略注解下的字段中的字段,而不是忽略这个字段本身;
有个思路你可以试试:把 elasticsearch:transport-client 中的 DefaultEntityMapper 改成一个自定义的 EntityMapper,然后用这个 EntityMapper 去掉那些不需要的字段
zhuwd
2018-10-25 09:42:21 +08:00
@ShadowFox 好的,我去试一下,谢谢老哥!
knightlhs
2018-10-25 14:30:21 +08:00
在 es 里面建立 Mapping 为指定字段设置为不建立索引即可

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/500886

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX