3

以下是问题的简要说明:

irb(main):001:0> b = Bisac.first
 CYPHER 268ms MATCH (n:`Bisac`) RETURN n ORDER BY n.uuid LIMIT {limit_1} | {:limit_1=>1}
=> #<Bisac uuid: nil, bisac_code: "MUS037050", bisac_value: "MUSIC / Printed Music / Mixed Collections">

以下是索引:

  ON :Author(uuid)              ONLINE (for uniqueness constraint) 
  ON :Author(author_name)       ONLINE (for uniqueness constraint) 
  ON :Bisac(uuid)               ONLINE (for uniqueness constraint) 
  ON :Bisac(bisac_code)         ONLINE (for uniqueness constraint) 
  ON :Country(country_name)     ONLINE (for uniqueness constraint) 
  ON :Country(uuid)             ONLINE (for uniqueness constraint) 
  ON :Description(uuid)         ONLINE (for uniqueness constraint) 
  ON :Language(iso_639_2_code)  ONLINE (for uniqueness constraint) 
  ON :Language(uuid)            ONLINE (for uniqueness constraint) 
  ON :Publisher(uuid)           ONLINE (for uniqueness constraint) 
  ON :Publisher(publisher_name) ONLINE (for uniqueness constraint) 
  ON :Region(region_name)       ONLINE (for uniqueness constraint) 
  ON :Region(uuid)              ONLINE (for uniqueness constraint) 
  ON :Woka(woka_title)          ONLINE                             
  ON :Woka(uuid)                ONLINE (for uniqueness constraint) 
  ON :Woka(woka_id)             ONLINE (for uniqueness constraint) 

这些 uuid 是否可以更改为非空值,因为它们似乎很有用?所有数据均从 CSV 文件加载。uuid 上的所有索引都是在第一次从 Ruby on Rails 控制台访问数据时创建的,其语句如下:b = Bisac.first 或 a = Auhtor.first 等。

4

1 回答 1

4

由于 Neo4j ID 可以回收,ActiveNode因此每个模型都需要一个可以唯一的属性。默认情况下是uuid,但您可以使用该id_property方法自己选择它。

如果您想填充该字段,这里有一个用于设置 uuid 的迁移工具:

https://github.com/neo4jrb/neo4j/wiki/Neo4j-v3-Migrations

但基本上这些字段是使用 Ruby 的SecureRandom.uuid. 您也可以使用自己的查询在数据库中自己执行此操作,或者如果您能够重建数据库,则LOAD CSV可以将其作为列添加到 CSV 文件中

于 2015-08-06T15:57:04.737 回答