当试图查找startsWith的用户列表时,请举一些文本示例:
g.V().hasLabel('user').has('username', startingWith('m')).limit(12).values('username'); //4 Seconds
g.V().hasLabel('user').has('username', startingWith('madyan')).limit(12).values('username'); //2 Minutes 我们寻找的字母越多,收到的越慢,为什么?我们如何优化查询,2分钟只是很高?
发布于 2022-06-03 13:17:46
海王星为精确匹配查询维护多个索引,但不包括本机全文搜索索引。因此,任何使用文本谓词步骤的查询(startingwith()、endingWith()、containing()等)将对您试图搜索的所有对象/属性进行完整或部分扫描。
为了提高性能,海王星有一个利用外部OpenSearch集群的全文搜索功能(1)。然后,您可以通过海王星中Gremlin (或SPARQL)中的其他步骤来使用OpenSearch中维护的索引来完成这一任务。
(1) https://docs.aws.amazon.com/neptune/latest/userguide/full-text-search.html
https://stackoverflow.com/questions/72487587
复制相似问题