Module: Legion::Extensions::Neo4j::Runners::Indexes
- Includes:
- Helpers::Lex, Helpers::Client
- Included in:
- Client
- Defined in:
- lib/legion/extensions/neo4j/runners/indexes.rb
Instance Method Summary collapse
- #create_existence_constraint(label:, property:, name: nil, database: 'neo4j', url: nil, username: nil, password: nil, read_only: false) ⇒ Object
- #create_fulltext_index(name:, labels:, properties:, database: 'neo4j', url: nil, username: nil, password: nil, read_only: false) ⇒ Object
- #create_index(label:, properties:, name: nil, database: 'neo4j', url: nil, username: nil, password: nil, read_only: false) ⇒ Object
- #create_uniqueness_constraint(label:, property:, name: nil, database: 'neo4j', url: nil, username: nil, password: nil, read_only: false) ⇒ Object
- #drop_constraint(name:, database: 'neo4j', url: nil, username: nil, password: nil, read_only: false) ⇒ Object
- #drop_index(name:, database: 'neo4j', url: nil, username: nil, password: nil, read_only: false) ⇒ Object
- #list_constraints(database: 'neo4j', url: nil, username: nil, password: nil) ⇒ Object
- #list_indexes(database: 'neo4j', url: nil, username: nil, password: nil) ⇒ Object
Methods included from Helpers::Client
Instance Method Details
#create_existence_constraint(label:, property:, name: nil, database: 'neo4j', url: nil, username: nil, password: nil, read_only: false) ⇒ Object
63 64 65 66 67 68 69 70 71 72 |
# File 'lib/legion/extensions/neo4j/runners/indexes.rb', line 63 def create_existence_constraint(label:, property:, name: nil, database: 'neo4j', url: nil, username: nil, password: nil, read_only: false, **) raise ReadOnlyError, 'Write operations disabled (read_only mode)' if read_only cypher = 'CREATE CONSTRAINT' cypher += " #{name}" if name cypher += " FOR (n:#{label}) REQUIRE n.#{property} IS NOT NULL" execute_cypher(cypher, parameters: {}, database: database, url: url, username: username, password: password) end |
#create_fulltext_index(name:, labels:, properties:, database: 'neo4j', url: nil, username: nil, password: nil, read_only: false) ⇒ Object
29 30 31 32 33 34 35 36 37 38 |
# File 'lib/legion/extensions/neo4j/runners/indexes.rb', line 29 def create_fulltext_index(name:, labels:, properties:, database: 'neo4j', url: nil, username: nil, password: nil, read_only: false, **) raise ReadOnlyError, 'Write operations disabled (read_only mode)' if read_only label_list = Array(labels).map { |l| "'#{l}'" }.join(', ') prop_list = Array(properties).map { |p| "'#{p}'" }.join(', ') cypher = "CREATE FULLTEXT INDEX #{name} FOR (n:#{label_list}) ON EACH [#{prop_list}]" execute_cypher(cypher, parameters: {}, database: database, url: url, username: username, password: password) end |
#create_index(label:, properties:, name: nil, database: 'neo4j', url: nil, username: nil, password: nil, read_only: false) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/legion/extensions/neo4j/runners/indexes.rb', line 17 def create_index(label:, properties:, name: nil, database: 'neo4j', url: nil, username: nil, password: nil, read_only: false, **) raise ReadOnlyError, 'Write operations disabled (read_only mode)' if read_only props = Array(properties).map { |p| "n.#{p}" }.join(', ') cypher = 'CREATE INDEX' cypher += " #{name}" if name cypher += " FOR (n:#{label}) ON (#{props})" execute_cypher(cypher, parameters: {}, database: database, url: url, username: username, password: password) end |
#create_uniqueness_constraint(label:, property:, name: nil, database: 'neo4j', url: nil, username: nil, password: nil, read_only: false) ⇒ Object
52 53 54 55 56 57 58 59 60 61 |
# File 'lib/legion/extensions/neo4j/runners/indexes.rb', line 52 def create_uniqueness_constraint(label:, property:, name: nil, database: 'neo4j', url: nil, username: nil, password: nil, read_only: false, **) raise ReadOnlyError, 'Write operations disabled (read_only mode)' if read_only cypher = 'CREATE CONSTRAINT' cypher += " #{name}" if name cypher += " FOR (n:#{label}) REQUIRE n.#{property} IS UNIQUE" execute_cypher(cypher, parameters: {}, database: database, url: url, username: username, password: password) end |
#drop_constraint(name:, database: 'neo4j', url: nil, username: nil, password: nil, read_only: false) ⇒ Object
74 75 76 77 78 79 |
# File 'lib/legion/extensions/neo4j/runners/indexes.rb', line 74 def drop_constraint(name:, database: 'neo4j', url: nil, username: nil, password: nil, read_only: false, **) raise ReadOnlyError, 'Write operations disabled (read_only mode)' if read_only execute_cypher("DROP CONSTRAINT #{name} IF EXISTS", parameters: {}, database: database, url: url, username: username, password: password) end |
#drop_index(name:, database: 'neo4j', url: nil, username: nil, password: nil, read_only: false) ⇒ Object
40 41 42 43 44 45 |
# File 'lib/legion/extensions/neo4j/runners/indexes.rb', line 40 def drop_index(name:, database: 'neo4j', url: nil, username: nil, password: nil, read_only: false, **) raise ReadOnlyError, 'Write operations disabled (read_only mode)' if read_only execute_cypher("DROP INDEX #{name} IF EXISTS", parameters: {}, database: database, url: url, username: username, password: password) end |
#list_constraints(database: 'neo4j', url: nil, username: nil, password: nil) ⇒ Object
47 48 49 50 |
# File 'lib/legion/extensions/neo4j/runners/indexes.rb', line 47 def list_constraints(database: 'neo4j', url: nil, username: nil, password: nil, **) execute_cypher('SHOW CONSTRAINTS', parameters: {}, database: database, url: url, username: username, password: password) end |
#list_indexes(database: 'neo4j', url: nil, username: nil, password: nil) ⇒ Object
12 13 14 15 |
# File 'lib/legion/extensions/neo4j/runners/indexes.rb', line 12 def list_indexes(database: 'neo4j', url: nil, username: nil, password: nil, **) execute_cypher('SHOW INDEXES', parameters: {}, database: database, url: url, username: username, password: password) end |