全文索引无法使用

提问参考模版:

  • nebula 版本:
    image
  • 部署方式(分布式 / 单机 / Docker / DBaaS): 分布式(3台机器分别部署metad/graphd/storaged)
  • 是否为线上版本:N
  • 问题的具体描述
    建立全文索引后,手动插入数据没问题。然后使用Nebula Importer插入数据发现ES中并没有数据。最后发现一次插入多条数据时,只有第一条数据会进入ES。

从哪里判断是有一条数据进了es?

用这个命令看下呢?
curl -XGET http://127.0.0.1:9200/nebula_ft_index/_count

lookup on person where prefix(person.first_name, 'to')

这里能拿到结果,不久说明是通过全文索引检索出来的嘛?

因为listener是异步的往es里写数据,可能那个时间点数据还没写进去。
再尝试一下 “te” 那个查询?

{
  "count": 4,
  "_shards": {
    "total": 3,
    "successful": 3,
    "skipped": 0,
    "failed": 0
  }
}

显示已经有4条数据了

能否用这个命令看下这四条数据的详细内容?
curl -H “Content-Type: application/json; charset=utf-8” -XGET “http://127.0.0.1:9200/nebula_fulltext2_tag/_search?pretty” -d’{ “query”: { “match_all”: {}}}’

是的是的,这个space现在是可以了。但是我最开始使用Nebula Importer导入数据的那个space还是只有2条数据。

{
  "count": 2,
  "_shards": {
    "total": 3,
    "successful": 3,
    "skipped": 0,
    "failed": 0
  }
}

我看listener下面也是有数据的,是数据还没写入到ES么?现在有什么方法可以看到写入的进度嘛

有个PR还没合并进去,最近会合并进去,之后通过vlog可以查看异步写入进度。

看了,这四条数据就是我手动插入的

好的,那应该就是异步写入es的interval导致的。最终listener会追上leader的。

请问大概什么时候会合并进去呢

我就是很奇怪为什么这么久了,才进去两条数据

异步写的优势是不影响nebula本身的写入速度。至于多长时间listener能追上leader,这个还没有个确切的时间,有很多原因,比如数据量大小;es写入慢;es挂掉;listener同步的interval等。

好的,十分感谢。希望查看异步写入进度的PR能尽快合并进去。

该主题在最后一个回复创建后7天后自动关闭。不再允许新的回复。

浙ICP备20010487号