LOOKUP 当TAG的属性的value是中文时,不返回

我在本地复现了一下, 发现给string属性建立索引的长度比较小时就会出现显示乱码的情况:

create tag index product_index on product(name(20))
...
(root@nebula) [nba]> lookup on product where product.name == "大宝美白集萃柔肤水"  yield product.name
+----------+------------------+
| VertexID | product.name     |
+----------+------------------+
| "101"    | "大宝美白集萃�" |
+----------+------------------+
create tag index product_index on product(name(100))
...
(root@nebula) [nba]> lookup on product where product.name == "大宝美白集萃柔肤水"  yield product.name
+----------+----------------------+
| VertexID | product.name         |
+----------+----------------------+
| "101"    | "大宝美白集萃柔肤水" |
+----------+----------------------+
Got 1 rows (time spent 3758/4475 us)
1 个赞

好的,收到。这里的长度是指字节吗? 比如我中文字符串最长是10,索引长度要设置成至少20?

是的, 这里的长度单位是字节。 这个长度要保证比这个属性的所有值的长度都要长, 才不会乱码。 "大宝美白集萃柔肤水"共9个字, 占27个字节, 你的索引长度应该大于等于27

utf-8编码一个中文一般是3个字节。 所以中文字符串最长是10,索引长度要设置成至少30才行

1 个赞

OK, 感谢。