已经新建的有原文索引,执行报错

内核版本 3.5


想使用模糊查询,因为match,无法实现uinion all之后分页的功能,所以改成look_up+go方式,但报这个错误

或者你们这match 支持union all后分页功能也行,现在也不支持

contains filter 没法下推,就不支持了,你可以先用前边条件查,然后再管道之后用 contains 条件,这样就是所有上一个条件的数据扫出来再过滤。

现在报的是全文索引的问题

现在报的是让你用全文索引来做

对的,主要match还不支持union all后分页查询,本来新建了原文索引,换这种方式又不支持,如果用全文索引还得安装es

和当初的设计就冲突了

能介绍下你的场景吗?因为图无法解决所有问题。擅长的事情还是会交给擅长的引擎来解决。翻了下你最近发的帖子,感觉可能用es或其他的搜索引擎可能会更容易满足你的需求

es也不行,因为我们这要分析不同的关系来反推满足的点的数据

我们的场景需求就是,根据关系或者对侧的点的条件,可以查询到指定点的数据,如果是父类,则需要把所有满足的子类的点union all展示,并分页。那么全局查询则需要根据全局的搜索属性条件,把满足的点的数据查出来

如我说的

LOOKUP xxx WHERE ( xx == 1 or xxx == "xxx") YIELD xxx | YIELD aaa WHERE xxx CONTAINS xxx

参考

lookup on player YIELD vertex AS v | yield $-.v WHERE $-.v.player.name CONTAINS "s"
+---------------------------------------------------------------+
| $-.v                                                          |
+---------------------------------------------------------------+
| ("player149" :player{age: 22, name: "Ben Simmons"})           |
| ("player112" :player{age: 29, name: "Jonathon Simmons"})      |
| ("player102" :player{age: 33, name: "LaMarcus Aldridge"})     |
| ("player106" :player{age: 25, name: "Kyle Anderson"})         |
| ("player110" :player{age: 27, name: "Cory Joseph"})           |
| ("player142" :player{age: 29, name: "Klay Thompson"})         |
| ("player138" :player{age: 38, name: "Paul Gasol"})            |
| ("player139" :player{age: 34, name: "Marc Gasol"})            |
| ("player107" :player{age: 32, name: "Aron Baynes"})           |
| ("player116" :player{age: 34, name: "LeBron James"})          |
| ("player120" :player{age: 29, name: "James Harden"})          |
| ("player108" :player{age: 36, name: "Boris Diaw"})            |
| ("player143" :player{age: 23, name: "Kristaps Porzingis"})    |
| ("player118" :player{age: 30, name: "Russell Westbrook"})     |
| ("player111" :player{age: 38, name: "David West"})            |
| ("player121" :player{age: 33, name: "Chris Paul"})            |
| ("player148" :player{age: 45, name: "Jason Kidd"})            |
| ("player132" :player{age: 24, name: "Giannis Antetokounmpo"}) |
| ("player136" :player{age: 45, name: "Steve Nash"})            |
+---------------------------------------------------------------+
1 个赞

这个会使用全文索引吗,还是原文索引就行

原生索引就足够,不是基于全文索引,如 @MuYi 解释的,之前的报错是在全量数据上进行 contains 查询是禁止的,假设了这个操作只能基于 elastic ,这背后的原因是 contains 在原生索引上只能是全扫,太贵了。

这样多一个 YIELD 绕过了这个判定,不过理想状况下应该是 LOOKUP 本身的条件能够大量过滤数据。

再次,这一类查询是表查询不是图查询哈

好的,大神玩的就是6,我如果想返回具体的属性字段呢

返回的东西是随意的哈,自己想返回啥就返回啥,只要保留能过滤的一列进行过滤,怎么返回都行的

我知道,能不能基于过滤的列,再用yield返回指定列呢

可以的哈,管道是很灵活的~~


这么写就可以了

2 个赞

:+1:,有意思,原来 yield where 这里有点小问题,被你机智绕改过了