2014-01-03 4 views
2

На Neo4j 2.0 (сообщества), когда я дамп БД с некоторыми узлами со свойствами двойного типа, я получить файл со значением в научной нотации: ех 1.43524185E8Neo4j 2,0 свалка с двойным типом

При импорте этого файла , то Neo4j-оболочка неудачно со следующей ошибкой:

Invalid input 'E': expected Digit, whitespace, '.', node labels, '[', "=~", IN, IS, '*', '/', '%', '^', '+', '-', '<', '>', "<=", ">=", '=', "<>", "!=", AND, XOR, OR, ',' or '}' (line 167, column 153) 
"create (_30015:`organization`:`fr` {`capital`:1.43524185E8, })" 
                 ^
    at org.neo4j.cypher.internal.compiler.v2_0.parser.CypherParser$$anonfun$parse$1.apply(CypherParser.scala:53) 
    at org.neo4j.cypher.internal.compiler.v2_0.parser.CypherParser$$anonfun$parse$1.apply(CypherParser.scala:43) 

Казалось Двойной тип не разобран правильно.

Команда используется для сброса децибела:

$ neo4j-shell -c "dump" > ito3.graph 

Команда, используемая для их импорта (в пустом graph.db):

$ neo4j-shell -file ito3.graph 

Деталь пострадавших свойств:

neo4j-sh (__value_deleted__,30015)$ ls -v 
... 
*capital     =[1.43524185E8] (double)  
... 
+0

Я думаю, что это ошибка с командой дампа, можете ли вы сообщить о проблеме в github.com/neo4j/neo4j/issues? –

+0

сделано: https://github.com/neo4j/neo4j/issues/1781 – bastien

+0

@MichaelHunger У меня была аналогичная проблема с экранированием кавычек в строковых значениях. Имена свойств возвращаются в обратном порядке, но значение, подобное «строковому» значению «', выгружается как «строка» «значение» «», которое ломается при импорте. Это проблема с дампом, или я делаю это неправильно? Никогда не использовал команду дампа, пока не увидел интересный пример @bastien. – jjaderberg

ответ

1

В java, как правило, номера научных обозначений не разбираются в двойниках. Here's a related forum posting describing how to use DecimalFormat to fix the issue.

Я думаю, что суть в том, что то, что вы даете cypher, не является двойной, а строкой, и поскольку вы не ставите кавычки вокруг строки, она умирает. Вам нужно указать там действительный цифровой формат.

+0

Спасибо за ваш ответ. Но я подтверждаю, что это двойной тип (я проверяю это с помощью ls -v в neo4j-shell). Если он не может быть проанализирован в двойном типе, несмотря на то, что значение orignal было в двойном типе, то я думаю, что есть проблемы с функциями дампа/импорта в Neo4j 2.0 – bastien

+0

Можете ли вы предоставить дополнительную информацию о том, как вы делаете свалка? Кажется, что-то, ваши большие ценности удваиваются, превращаются в научную нотацию, когда вы делаете свалку. Могут быть варианты настройки, но вы должны сначала понять, как происходит сброс, и какие параметры конфигурации присутствуют там. – FrobberOfBits

+0

Как отрешился в моем посте: '$ neo4j-shell -c" dump "> ito3.graph' – bastien

Смежные вопросы