スクリプトを使用して大量のデータを Neo4j に挿入しようとしています。しばらくすると、スクリプトは次の例外で中断します。
PHP Fatal error: Uncaught exception 'Everyman\Neo4j\Exception' with message 'Unable to execute query [400]:
Headers: Array
(
[Content-Length] => 3031
[Content-Type] => application/json; charset=UTF-8
[Access-Control-Allow-Origin] => *
[Server] => Jetty(6.1.25)
)
Body: Array
(
[message] => An identifier is used with different types. The identifier ` UNNAMED2` is used both as Relationship and as Collection
[exception] => CypherTypeException
[fullname] => org.neo4j.cypher.CypherTypeException
[stacktrace] => Array
(
[0] => org.neo4j.cypher.internal.symbols.SymbolTable.add(SymbolTable.scala:33)
[1] => org.neo4j.cypher.internal.symbols.SymbolTable$$anonfun$checkNoOverlapsExist$1.apply(SymbolTable.scala:47)
[2] => org.neo4j.cypher.internal.symbols.SymbolTable$$anonfun$checkNoOverlapsExist$1.apply(SymbolTable.scala:46)
[3] => scala.collection.immutable.Map$Map1.foreach(Map.scala:109)
[4] => org.neo4j.cypher.internal.symbols.Symbol in phar:///var/www/zomato9/application/library/neo4jphp.phar/lib/Everyman/Neo4j/Command.php on line 116
同じクエリがコンソールから機能し、例外が発生した同じポイントからスクリプトを再起動すると、再び失敗するまでしばらくの間再び機能します。例外をキャッチしてスクリプトを数秒間スリープさせても、スクリプトは壊れません。
ここで何が起こっているのかについて何か提案はありますか?
更新: サンプル クエリを追加しました
START a = node:?("?:?"), b = node:?("?:?")
MATCH a-[c1:ACTIVITY_LIST*]->z, z-[r1:ACTIVITY_LIST]->y
WHERE z.TIMESTAMP >= '.$time.' AND y.TIMESTAMP < '.$time.'
CREATE n = {?}, clist = {COMMENT_ID: ''}, a-[:IN_?]->n, n-[:OUT_?]->b, n-[:COMMENT_LIST]->clist, z-[:ACTIVITY_LIST]->n, n-[:ACTIVITY_LIST]->y
DELETE r1
RETURN n;