Leehom
#1
通过如下方式创建、插入全文索引数据
CREATE FULLTEXT TAG INDEX nebula_index_10 ON player(name,alias);
LOOKUP ON player WHERE PREFIX(player.name, “Bluce”) YIELD player.name, player.alias, player.age;
全文索引生成的Elasticsearch中的index信息如下
据观察了解到Elasticsearch的index中的column_id是根据字段name和alias按MD5加密生成的
请问Elasticsearch的index中的_id是根据什么来生成的?
是否能通过_id的值,查找到nebula中对应的数据?可以的话如何实现?
_id 是通过这个prop value的base64计算出来的。
Leehom
#3
谢谢哈!
我试了下,比如我这里的数据:
“_id” : “0000000004b068931cc450442b63f5b3d276ea4297Qmx1Y2UgTGl1”,
“column_id” : “b068931cc450442b63f5b3d276ea4297”,
“value” : “Bluce Liu”
id的值=0000000004+column_id+column_id的base64加密后的值
更进一步是:
id的值=0000000004+属性name的MD5加密+column_id值的base64加密后的值
这里的0000000004是怎么计算出来的呢?
还有,是否能通过_id的值,查找到nebula中对应的数据?可以的话如何实现?
0000000004是partId,前边补零。通过es的_id是查不到nebula中的值的,nebula中的值需要通过es中的value来识别。value中可以识别column name.
1 个赞
有资料可以看看你们怎么实现全文索引查询的吗?如果ES的_id和vid 没有存储映射关系的话,你们是去ES查,得到value和column ,然后再通过属性值去nebula 查数据??
system
关闭
#6
此话题已在最后回复的 30 天后被自动关闭。不再允许新回复。