2.6.1全文索引bug

使用2.6.1版本,集群部署
建两个不同的space,tag相同

CREATE SPACE nba(partition_num=15, replica_factor=3, vid_type=fixed_string(30));
USE nba;
SIGN IN TEXT SERVICE (xxxx);
ADD LISTENER ELASTICSEARCH xxx;

CREATE TAG player(name string, team string, age int);
CREATE FULLTEXT TAG INDEX nebula_player_name ON player(name);

此时显示创建全文索引成功,像这个索引插入数据,es上能看到产生了索引并生成了数据。

再建一个不同space,执行相同操作

CREATE SPACE nba1(partition_num=15, replica_factor=3, vid_type=fixed_string(30));
USE nba1;
SIGN IN TEXT SERVICE (xxxx);
ADD LISTENER ELASTICSEARCH xxx;

CREATE TAG player(name string, team string, age int);
CREATE FULLTEXT TAG INDEX nebula_player_name1 ON player(name);

此时创建全文索引报错显示Existed!

metad报错日志:

E0117 12:22:48.959836 12834 FTIndexProcessor.cpp:104] Depends on the same schema , index : nebula_player_name

graphd报错日志:

E0117 12:20:52.518893 31435 FTIndexExecutor.cpp:25] Create fulltext index `nebula_player_name1' failed: Existed!
E0117 12:20:52.519088 31437 QueryInstance.cpp:108] Existed!

这个是bug吧?

我印象中应该全文索引的名字全局唯一的

我看了下代码,目前的全文索引实现,是全局的,没有space的范围。
因此全文索引的名字必须全局唯一。

补充下 pandasheeps 的意思,就是因为你创建了 2 个全文索引,虽然是 2 个 space 但是在一个集群(全局)里,所以第二个就报了 exists 的错误。

第一个space nba的全文索引名是nebula_player_name
第二个space nba1的全文索引名是nebula_player_name1,怎么就不满足全局唯一了?

不知道是我没弄明白你意思还是你没仔细看,两个索引是在一个集群但名字并不一样

sorry 这个地方有个小问题哈

fulltext有几个限制:
1: fulltext name 全局唯一
2:目前也判断了全文索引所在的tag/edge name 不能相同。(这里没有判断是否是同一个space)
因此你的两个space的同一个tag player 上创建全文索引是失败的。
你的问题出在第二个。

2 个赞

所以说这是个bug对吧

if (index.get_depend_schema() == indexItem.get_depend_schema()) {
LOG(ERROR) << "Depends on the same schema , index : " << indexName;
handleErrorCode(nebula::cpp2::ErrorCode::E_EXISTED);
onFinished();
return;
}
nba这个space下的player的SchemaID

nba1这个space下的player的SchemaID,不是应该不相同吗?

我多试了几次,有时候这样能创建成功,有时候不成功,不是每次都必现的。

我今天抽空fix下吧

3 个赞

请参照下这个pr

2 个赞

我们准备月底在生产环境使用,社区会基于2.6.1出修复了这个bug的release安装包(RPM包)吗?

这个让我们PM 来回答吧。

抱歉,这个会在3.0.0版本修复,预计2月发布。

好的,那可以告知下我们打RMP包的方法吗

见这个章节,近期还会随3.0.0发布调整下

1 个赞

想知道根据源码打包成RPM包的办法,这样我们就可以自己打包了

我看wey说已经在规划2.6.2版本了,会在这个版本修复这个bug吗?

请看下上面附的链接,这里面有打包的方法。另外,2.6.2的范围还不确定,会尽量包含。

2 个赞

2.6.2已经发布,解决了全文索引的问题,可以试一下

2 个赞