我发现即使在相对较小的(150K)数据集中,尽管存在索引,但是在按文本模式搜索记录时,OrientDB太慢(至少比Neo4j慢得多)。
例如,我为“username”属性提供了UNIQUE和FULLTEXT索引,但是如下所示,OrientDB不使用任何索引。
orientdb> explain select username from P where username like 'log%'
Profiled command '{current:#10:152060,documentReads:152061,documentAnalyzedCompatibleClass:152061,recordReads:152061,elapsed:6.5357623,resultType:collection,resultSize:88}' in 6,537000 sec(s):
{
"@type": "d", "@version": 0,
"current": "#10:152060",
"documentReads": 152061,
"documentAnalyzedCompatibleClass": 152061,
"recordReads": 152061,
"elapsed": 6.5357623,
"resultType": "collection",
"resultSize": 88,
"@fieldTypes": "documentReads=l,documentAnalyzedCompatibleClass=l,recordReads=l,elapsed=f"
}
有没有办法加速OrientDB中的模式搜索?
答案 0 :(得分:7)
要使用全文索引,您应该使用containstext运算符,例如:
explain select username from P where username containstext 'log'
或试试这个:
explain select username from P where username >= 'log' and username < 'loh'