sun2920989 最近的时间轴更新
sun2920989
ONLINE

sun2920989

V2EX 第 94911 号会员,加入于 2015-01-31 10:03:59 +08:00
今日活跃度排名 1124
根据 sun2920989 的设置,主题列表被隐藏
二手交易 相关的信息,包括已关闭的交易,不会被隐藏
sun2920989 最近回复了
6 天前
回复了 llys 创建的主题 PHP PHP8.1 发布了,好像大家都不太关注呢
想起个表情包,php 开发没人要啦.
看成了被踢检测,还以为是和同学打架被踢了.
26 天前
回复了 Saxton 创建的主题 Elasticsearch elasticsearch 针对对象查询问题
@Saxton #18 好的,了解了.也建议再从业务层上考虑下是否会存在某个 tag 的 key 对应了多个不同的 value 的场景.防止后续出现意外.比如[{key:tags1,value:测试 1},{key:tags1,value:测试 2}],这样的结构.
26 天前
回复了 Saxton 创建的主题 Elasticsearch elasticsearch 针对对象查询问题
如果说楼主使用的方式是 tags:'灌水' ,test:问候,这样来存储的话,才是真的将一个 tag 变成了一个字段,这样随着 tag 变得越来越多,才需要考虑映射爆炸的问题.因为此时的总映射字段数量是不确定的,是持续动态变多的.
26 天前
回复了 Saxton 创建的主题 Elasticsearch elasticsearch 针对对象查询问题
按照追加的说法,将下一层级中需要搜索的字段提出来到上一层级中再存一分,我感觉并不能解决此类问题,比如,主楼第一条数据最终还是会存储为 tag:['tags','test'],因为是一对多的结构.所以一样会被主楼这样的条件所查询到.当然可能这个地方我理解的和楼主实现的方式不一样.
26 天前
回复了 Saxton 创建的主题 Elasticsearch elasticsearch 针对对象查询问题
不管是 object 还是 nested,或者只是基础的 text, keyword 等等,不管什么类型的数据结构,只要字段总量是确定的,也不用过于担心映射爆炸的问题,映射爆炸主要是对于动态增加的字段来说的,与是否是对象和是否是嵌套无关.比如字段名字叫做 tag1,tag2 这样随着业务不断新增的时候,才会需要考虑这个问题.像我上一楼回复中说的,如果是主楼那样的数据结构,不管有多少个 tag,其实也只有 customFields.key 一个字段而已,字段是数组的话,字段内的数值变多,并不会引起映射爆炸.同样,以上说法也是我记得的情况,可以再找找资料了解一下.
27 天前
回复了 Saxton 创建的主题 Elasticsearch elasticsearch 针对对象查询问题
@liangzhe #12 不是大佬,客气了.你所指的 tag 极多是在什么层级呢,以楼主主贴的数据结构看,即使 tag 再多,对于 es 来讲也是 customFields.key 这样一个字段,只是字段里的内容比较长而已.es 对整体的字段数量,以及对单一一个字段里面内容的长度,比如 keyword 类型,也是有限制的,但是这些也都可以按照实际情况进行一定的配置来调大一些.主要看你的数据结构了.
27 天前
回复了 Saxton 创建的主题 Elasticsearch elasticsearch 针对对象查询问题
@Saxton #10 嗯,那你需要额外处理下第一条数据那种一对多的关系.
27 天前
回复了 Saxton 创建的主题 Elasticsearch elasticsearch 针对对象查询问题
@Saxton #5 简单来说,es 的数据结构存储你这样的数据,如果不使用 nested,实际上会被重新打平拆分的,你的数据的第一条实际上会变为 customFields.key:[tags,test], customFields.value:[灌水,问候] ,所以就会被你在筛选 tags + 问候 时也被筛选到.以上信息源自于我的记忆不保证准确,你自行搜索下.
关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3785 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 10ms · UTC 09:26 · PVG 17:26 · LAX 01:26 · JFK 04:26
♥ Do have faith in what you're doing.