diff --git a/config/community.conf b/config/community.conf index 75ccb480b..e572d897d 100644 --- a/config/community.conf +++ b/config/community.conf @@ -48,6 +48,17 @@ # would be --properties-on-disk=biography,summary. #--properties-on-disk= +## Ids + +# Memgraph can generate an identifier for each vertex or edge. The +# generated ids are returned with the id function. + +# Memgraph can generate an identifier for each vertex. +--generate-vertex-ids=true + +# Memgraph can generate an identifier for each edge. +--generate-edge-ids=true + ## Query # # Various settings related to openCypher query execution. diff --git a/docs/user_technical/open-cypher.md b/docs/user_technical/open-cypher.md index 0be3695bf..cb789fa70 100644 --- a/docs/user_technical/open-cypher.md +++ b/docs/user_technical/open-cypher.md @@ -702,6 +702,7 @@ functions. `counter` | Generates integers that are guaranteed to be unique on the database level, for the given counter name. `counterSet` | Sets the counter with the given name to the given value. `indexInfo` | Returns a list of all the indexes available in the database. The list includes indexes that are not yet ready for use (they are concurrently being built by another transaction). + `id` | Returns identifier for a given node or edge. To enable automatic generation of the identifiers, `--generate-vertex-ids` and `--generate-edge-ids` parameters have to be set on `true` (enabled in the configuration by default). #### String Operators @@ -821,7 +822,6 @@ here (especially subtle semantic ones). #### Unsupported Functions General purpose functions: -* `id()` - Memgraph does not expose a public unique node identifier. * `exists(n.property)` - This can be expressed using `n.property IS NOT NULL`. * `length()` is named `size()` in Memgraph. diff --git a/docs/user_technical/quick-start.md b/docs/user_technical/quick-start.md index 986230bd9..0df3ba801 100644 --- a/docs/user_technical/quick-start.md +++ b/docs/user_technical/quick-start.md @@ -56,16 +56,36 @@ Linux systems it should be in `/var/lib/docker/volumes/mg_etc/_data/memgraph.conf`. After changing the configuration, Memgraph needs to be restarted. +##### Note about named volumes + +In case named volumes are reused between different versions of Memgraph, a user +has to be careful because Docker will overwrite a folder within the container +with existing data from the host machine. In the case where a new file is +introduced, or two versions of Memgraph are not compatible, the new feature +won't work or Memgraph won't be able to work correctly. The easiest way to +solve the issue is to use another named volume or to remove existing named +volume from the host with the following command. + +```bash +docker volume rm +``` + +Named Docker volumes used in this documentation are: `mg_etc`, `mg_log` and +`mg_lib`. Another valid option is to try to migrate your existing volume to a +newer version of Memgraph. In case of any issues, send an email to +`tech@memgraph.com`. + ##### Note for OS X/macOS Users Although unlikely, some OS X/macOS users might experience minor difficulties after following the Docker installation instructions. Instead of running on `localhost`, a Docker container for Memgraph might be running on a custom IP -address. Fortunately, that IP address can be found using the following algorithm: +address. Fortunately, that IP address can be found using the following +algorithm: 1) Find out the container ID of the Memgraph container -By issuing the command `docker ls` the user should get an output similar to the +By issuing the command `docker ps` the user should get an output similar to the following: ```bash @@ -73,8 +93,8 @@ CONTAINER ID IMAGE COMMAND CREATED 9397623cd87e memgraph "/usr/lib/memgraph/m…" 2 seconds ago ... ``` -At this point, it is important to remember the container ID of the Memgraph image. -In our case, that is `9397623cd87e`. +At this point, it is important to remember the container ID of the Memgraph +image. In our case, that is `9397623cd87e`. 2) Use the container ID to retrieve an IP of the container @@ -111,9 +131,9 @@ journalctl --unit memgraph It is expected to see something like the following output. ```bash -Nov 23 13:40:13 hostname memgraph[14654]: Starting 8 workers -Nov 23 13:40:13 hostname memgraph[14654]: Server is fully armed and operational -Nov 23 13:40:13 hostname memgraph[14654]: Listening on 0.0.0.0 at 7687 +Nov 23 13:40:13 hostname memgraph[14654]: Starting 8 BoltS workers +Nov 23 13:40:13 hostname memgraph[14654]: BoltS server is fully armed and operational +Nov 23 13:40:13 hostname memgraph[14654]: BoltS listening on 0.0.0.0 at 7687 ``` Memgraph is now ready to process queries, you may now proceed to @@ -152,9 +172,9 @@ journalctl --unit memgraph It is expected to see something like the following output. ```bash -Nov 23 13:40:13 hostname memgraph[14654]: Starting 8 workers -Nov 23 13:40:13 hostname memgraph[14654]: Server is fully armed and operational -Nov 23 13:40:13 hostname memgraph[14654]: Listening on 0.0.0.0 at 7687 +Nov 23 13:40:13 hostname memgraph[14654]: Starting 8 BoltS workers +Nov 23 13:40:13 hostname memgraph[14654]: BoltS server is fully armed and operational +Nov 23 13:40:13 hostname memgraph[14654]: BoltS listening on 0.0.0.0 at 7687 ``` Memgraph is now ready to process queries, you may now proceed to