Индекс не работает при использовании order (). By () в Titan
Титан документация Говорит, что:
Смешанные индексы поддерживают упорядоченный и эффективный порядок. Однако ключ свойства, используемый в методе order (). By (), должен быть предварительно добавлен в смешанный индекс для поддержки упорядочения собственных результатов. Это важно в тех случаях, когда ключ order (). By () отличается от ключей запроса. Если ключ свойства не является частью индекса, сортировка требует загрузки всех результатов в память.
Итак, я сделал смешанный индекс наprop1
имущество. Смешанный индекс поprop1
хорошо работает, когда указано значение.
gremlin> g.V().has('prop1', gt(1)) /* this gremlin uses the mixed index */
==>v[6017120]
==>v[4907104]
==>v[8667232]
==>v[3854400]
...
Но, когда я используюorder().by()
наprop1
Я не могу воспользоваться смешанным индексом.
gremlin> g.V().order().by('prop1', incr) /* doesn't use the mixed index */
17:46:00 WARN com.thinkaurelius.titan.graphdb.transaction.StandardTitanTx - Query requires iterating over all vertices [()]. For better performance, use indexes
Could not execute query since pre-sorting requires fetching more than 1000000 elements. Consider rewriting the query to exploit sort orders
Такжеcount()
занимает так много времени.
gremlin> g.V().has('prop1').count()
17:44:47 WARN com.thinkaurelius.titan.graphdb.transaction.StandardTitanTx - Query requires iterating over all vertices [()]. For better performance, use indexes
Я был бы счастлив, если бы я знал, что со мной не так. Вот моя информация о Титане:
Версия Titan: 1.0.0-hadoop1Хранение Backend: Кассандра 2.1.1Индекс Backend: ElasticSearch 1,7Спасибо.