Orientdb, где предложение не возвращает запись

Я пытаюсь получить запись, используя поле id из базы данных orientdb, но она не возвращает запись.

Вот запись (работает при простом выборе):

orientdb {baasbox}> select from _bb_order             

----+-----+-----+------+------+------+-------+--------+---------+---------+---------+-----    ----+---------+---------+---------+---------+-------------
#   |@RID |price|_links|_allow|_audit|_author|verbatim|timestamp|audioLeng|orderURI |transcrip|_creation|id       |fileId   |feedbackI|status       

----+-----+-----+------+------+------+-------+--------+---------+---------+---------+---------+---------+---------+---------+---------+-------------
0   |#22:1|0    |#11:9 |[1]   |#3:7  |k      |false   |false    |60       |TC0448...|         |2014-0...|249373...|8a9ca9...|0540df...|Order rece...

----+-----+-----+------+------+------+-------+--------+---------+---------+---------+---------+---------+---------+---------+---------+-------------


1 item(s) found. Query executed in 0.003 sec(s).

Когда я выбираю идентификатор из схемы _bb_order, я могу получить запись.

orientdb {baasbox}> select id from _bb_order

----+-----+------------------------------------
#   |@RID |id                                  

----+-----+------------------------------------
0   |#-2:1|24937309-9189-484d-b406-6302b2ce9b6f

----+-----+------------------------------------


1 item(s) found. Query executed in 0.003 sec(s).

НО, я НЕ могу восстановить запись, когда использую предложение where в атрибуте id.

orientdb {baasbox}> select from _bb_order where id="24937309-9189-484d-b406-6302b2ce9b6f"    


0 item(s) found. Query executed in 0.001 sec(s).

Я могу получить запись, когда использую какой-либо другой атрибут, например fileId.

orientdb {baasbox}> select from _bb_order where fileId="8a9ca9d2-bbe2-4326-aa2b-bad5f2032fbd"

----+-----+-----+------+------+------+-------+--------+---------+---------+---------+---------+---------+---------+---------+---------+-------------
#   |@RID |price|_links|_allow|_audit|_author|verbatim|timestamp|audioLeng|orderURI |transcrip|_creation|fileId   |id       |feedbackI|status       

----+-----+-----+------+------+------+-------+--------+---------+---------+---------+---------+---------+---------+---------+---------+-------------
0   |#22:1|0    |#11:9 |[1]   |#3:7  |k      |false   |false    |60       |TC0448...|         |2014-0...|8a9ca9...|249373...|0540df...|Order rece...

----+-----+-----+------+------+------+-------+--------+---------+---------+---------+---------+---------+---------+---------+---------+-------------


1 item(s) found. Query executed in 0.002 sec(s).    

Подтверждено, что поле Id хранится в коде как строка.

Любые мысли о том, почему это происходит?


person K.K    schedule 14.07.2014    source источник
comment
У вас есть индекс _bb_order.id? Попробуйте: EXPLAIN выберите из _bb_order, где id=24937309-9189-484d-b406-6302b2ce9b6f   -  person riccardo.tasso    schedule 14.07.2014
comment
Может ли эта база данных быть повреждена? Типа почти не выключается или что-то в этом роде.   -  person enisher    schedule 14.07.2014
comment
@enisher: мне приходится вручную удалять всю базу данных каждый раз, когда мне нужно удалить базу данных. Это связано с тем, что когда я использую команду drop database, а затем создаю новую базу данных, я получаю некоторую ошибку при входе в систему после создания пользователя. Я понимаю, что это может быть плохо, но это решило проблему входа в систему.   -  person K.K    schedule 14.07.2014
comment
@riccardo.tasso: я не знаю, есть ли индекс на _bb_order.id или нет. Я попробовал «перестроить индекс *», и это сработало. Я напишу здесь, если проблема повторится, и попробую команду объяснения.   -  person K.K    schedule 15.07.2014


Ответы (1)


Попробуйте перестроить индексы с помощью следующей команды:

REBUILD INDEX *

Если это не помогло, это может быть ошибка. В этом случае создайте задачу на гитхабе с описанием, как ее воспроизвести.

person enisher    schedule 14.07.2014
comment
Сработало как по волшебству! :) Как часто мне нужно перестраивать индексы? Должны ли мы каждый раз создавать его вручную или для этого есть автоматическая команда/база данных? - person K.K; 15.07.2014