长文本如何放到ES中,避免写入放大问题

  • nebula 版本:2.6.2
  • 部署方式:分布式
  • 安装方式:源码编译
  • 是否为线上版本:Y
  • 硬件信息
    • 磁盘 1T SSD
    • CPU、内存信息
  • 问题具体描述:
    在nebula的手册的最佳实践–图建模中,有一个对于长文本的描述
    为边创建属性时请勿使用长文本:这些属性会被存储 2 份,导致写入放大问题(write amplification)。此时建议将长文本放在 HBase/ES 中,将其地址存放在 NebulaGraph 中。
    我们刚好碰到了有长文本需要存储在边上的场景,请问这个有更具体一点的操作步骤吗或者示例吗,我们搜索了一些内容,都没有找到与此相关的。

有一些文章可以先看一下

1 个赞

多谢。但还是有些问题,我的需求其实并不是需要对这个长字符做索引,只是为了存储边上的长文本
所以:

  1. 这种全文索引的部署方式对字段的长度做了256的限制,但我需要存储的文本大部分比256更长些,不太适宜,我只是为了避免写入放大的问题,并不想以此做索引,做查询条件,是否有其他的更优的方式;
  2. 按照实践所介绍,其实应该是引入个外部存储,举例了ES/Hbase,但整个文档并没有具体的展开介绍,所想看看有没有相关的操作流程;

要不 把长文本放在Hbase,然后边上属性是hbase地址 (v)-[e { url}]->(s)
要不 再建一个过渡节点 (v)-[e1]->(tmp {loooongtext})-[e2]->(s)

2 个赞

此话题已在最后回复的 30 天后被自动关闭。不再允许新回复。