Like SQL-based databases, you can create indices in Neo4j to optimize frequently performed searches. In my particular case, I am usually searching by the plant name. Adding an index on the plant’s name, therefore, makes sense:
CREATEΒ INDEXΒ index_tomato_nameΒ IFΒ NOTΒ EXISTS
FORΒ (n:TOMATO)
ONΒ (n.name)
I am also interested in mapping the genetic lineage, so I’ve added indices for the male and female parent plants:
CREATE INDEX index_tomato_parentm IF NOT EXISTS
for ()-[r:PARENT_M]-()
on (r.name)
CREATE INDEX index_tomato_parentf IF NOT EXISTS
for ()-[r:PARENT_F]-()
on (r.name)
Hypothetically, you can use the procedure CALL db.indexes(); to view all of the indices in a database, but SHOW PROCEDURES; shows me that procedure isn’t registered in the community edition.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€ββββββββ€ββββββββββββββ
βname βdescription βmode βworksOnSystemβ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββͺβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββͺββββββββͺββββββββββββββ‘
β"db.awaitIndex" β"Wait for an index to come online (for example: CALL db.awaitIndex(\"Mβ"READ" βtrue β
β βyIndex\", 300))." β β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββΌββββββββββββββ€
β"db.awaitIndexes" β"Wait for all indexes to come online (for example: CALL db.awaitIndexeβ"READ" βtrue β
β βs(300))." β β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββΌββββββββββββββ€
β"db.clearQueryCaches" β"Clears all query caches." β"DBMS" βtrue β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββΌββββββββββββββ€
β"db.createLabel" β"Create a label" β"WRITE"βfalse β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββΌββββββββββββββ€
β"db.createProperty" β"Create a Property" β"WRITE"βfalse β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββΌββββββββββββββ€
β"db.createRelationshipType" β"Create a RelationshipType" β"WRITE"βfalse β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββΌββββββββββββββ€
β"db.index.fulltext.awaitEventuallyConsistentIndexRefresh"β"Wait for the updates from recently committed transactions to be appliβ"READ" βtrue β
β βed to any eventually-consistent full-text indexes." β β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββΌββββββββββββββ€
β"db.index.fulltext.listAvailableAnalyzers" β"List the available analyzers that the full-text indexes can be configβ"READ" βtrue β
β βured with." β β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββΌββββββββββββββ€
β"db.index.fulltext.queryNodes" β"Query the given full-text index. Returns the matching nodes, and theiβ"READ" βtrue β
β βr Lucene query score, ordered by score. Valid keys for the options mapβ β β
β β are: 'skip' to skip the top N results; 'limit' to limit the number ofβ β β
β β results returned; 'analyzer' to use the specified analyzer as search β β β
β βanalyzer for this query." β β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββΌββββββββββββββ€
β"db.index.fulltext.queryRelationships" β"Query the given full-text index. Returns the matching relationships, β"READ" βtrue β
β βand their Lucene query score, ordered by score. Valid keys for the optβ β β
β βions map are: 'skip' to skip the top N results; 'limit' to limit the nβ β β
β βumber of results returned; 'analyzer' to use the specified analyzer asβ β β
β β search analyzer for this query." β β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββΌββββββββββββββ€
β"db.info" β"Provides information regarding the database." β"READ" βtrue β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββΌββββββββββββββ€
β"db.labels" β"List all available labels in the database." β"READ" βtrue β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββΌββββββββββββββ€
β"db.ping" β"This procedure can be used by client side tooling to test whether theβ"READ" βtrue β
β βy are correctly connected to a database. The procedure is available inβ β β
β β all databases and always returns true. A faulty connection can be detβ β β
β βected by not being able to call this procedure." β β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββΌββββββββββββββ€
β"db.prepareForReplanning" β"Triggers an index resample and waits for it to complete, and after thβ"READ" βtrue β
β βat clears query caches. After this procedure has finished queries willβ β β
β β be planned using the latest database statistics." β β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββΌββββββββββββββ€
β"db.propertyKeys" β"List all property keys in the database." β"READ" βtrue β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββΌββββββββββββββ€
β"db.relationshipTypes" β"List all available relationship types in the database." β"READ" βtrue β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββΌββββββββββββββ€
β"db.resampleIndex" β"Schedule resampling of an index (for example: CALL db.resampleIndex(\β"READ" βtrue β
β β"MyIndex\"))." β β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββΌββββββββββββββ€
β"db.resampleOutdatedIndexes" β"Schedule resampling of all outdated indexes." β"READ" βtrue β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββΌββββββββββββββ€
β"db.schema.nodeTypeProperties" β"Show the derived property schema of the nodes in tabular form." β"READ" βtrue β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββΌββββββββββββββ€
β"db.schema.relTypeProperties" β"Show the derived property schema of the relationships in tabular formβ"READ" βtrue β
β β." β β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββΌββββββββββββββ€
β"db.schema.visualization" β"Visualizes the schema of the data based on available statistics. A neβ"READ" βtrue β
β βw node is returned for each label. The properties represented on the nβ β β
β βode include: `name` (label name), `indexes` (list of indexes), and `coβ β β
β βnstraints` (list of constraints). A relationship of a given type is reβ β β
β βturned for all possible combinations of start and end nodes. The propeβ β β
β βrties represented on the relationship include: `name` (type name). Notβ β β
β βe that this may include additional relationships that do not exist in β β β
β βthe data due to the information available in the count store. " β β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββΌββββββββββββββ€
β"db.stats.clear" β"Clear collected data of a given data section. Valid sections are 'QUEβ"READ" βtrue β
β βRIES'" β β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββΌββββββββββββββ€
β"db.stats.collect" β"Start data collection of a given data section. Valid sections are 'QUβ"READ" βtrue β
β βERIES'" β β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββΌββββββββββββββ€
β"db.stats.retrieve" β"Retrieve statistical data about the current database. Valid sections β"READ" βtrue β
β βare 'GRAPH COUNTS', 'TOKENS', 'QUERIES', 'META'" β β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββΌββββββββββββββ€
β"db.stats.retrieveAllAnonymized" β"Retrieve all available statistical data about the current database, iβ"READ" βtrue β
β βn an anonymized form." β β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββΌββββββββββββββ€
β"db.stats.status" β"Retrieve the status of all available collector daemons, for this dataβ"READ" βtrue β
β βbase." β β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββΌββββββββββββββ€
β"db.stats.stop" β"Stop data collection of a given data section. Valid sections are 'QUEβ"READ" βtrue β
β βRIES'" β β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββΌββββββββββββββ€
β"dbms.cluster.routing.getRoutingTable" β"Returns the advertised bolt capable endpoints for a given database, dβ"DBMS" βtrue β
β βivided by each endpoint's capabilities. For example an endpoint may seβ β β
β βrve read queries, write queries and/or future getRoutingTable requestsβ β β
β β." β β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββΌββββββββββββββ€
β"dbms.components" β"List DBMS components and their versions." β"DBMS" βtrue β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββΌββββββββββββββ€
β"dbms.info" β"Provides information regarding the DBMS." β"DBMS" βtrue β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββΌββββββββββββββ€
β"dbms.killConnection" β"Kill network connection with the given connection id." β"DBMS" βtrue β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββΌββββββββββββββ€
β"dbms.killConnections" β"Kill all network connections with the given connection ids." β"DBMS" βtrue β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββΌββββββββββββββ€
β"dbms.listCapabilities" β"List capabilities" β"DBMS" βtrue β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββΌββββββββββββββ€
β"dbms.listConfig" β"List the currently active config of Neo4j." β"DBMS" βtrue β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββΌββββββββββββββ€
β"dbms.listConnections" β"List all accepted network connections at this instance that are visibβ"DBMS" βtrue β
β βle to the user." β β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββΌββββββββββββββ€
β"dbms.queryJmx" β"Query JMX management data by domain and name. For instance, \"*:*\"" β"DBMS" βtrue β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββΌββββββββββββββ€
β"dbms.routing.getRoutingTable" β"Returns the advertised bolt capable endpoints for a given database, dβ"DBMS" βtrue β
β βivided by each endpoint's capabilities. For example an endpoint may seβ β β
β βrve read queries, write queries and/or future getRoutingTable requestsβ β β
β β." β β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββΌββββββββββββββ€
β"dbms.upgrade" β"Upgrade the system database schema if it is not the current schema." β"WRITE"βtrue β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββΌββββββββββββββ€
β"dbms.upgradeStatus" β"Report the current status of the system database sub-graph schema." β"READ" βtrue β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββΌββββββββββββββ€
β"tx.getMetaData" β"Provides attached transaction metadata." β"DBMS" βtrue β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββΌββββββββββββββ€
β"tx.setMetaData" β"Attaches a map of data to the transaction. The data will be printed wβ"DBMS" βfalse β
β βhen listing queries, and inserted into the query log." β β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ΄βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ΄