tutorial - ¿Cómo borrar etiquetas en neo4j?
como crear una base de datos en neo4j (6)
A partir de hoy, con Neo4j Desktop versión: 1.1.10 y DB versión: 3.4.7 Eliminar datos + eliminar Índice + eliminar cualquier restricción única + Desarrollador> Actualizar borra todas las etiquetas
¿Cómo borrar etiquetas en neo4j? En realidad, eliminé todos los nodos y relaciones, luego volví a crear la base de datos de películas y aún las etiquetas que había creado antes aparecían en la interfaz web. También intenté utilizar una ubicación diferente para la base de datos e incluso después de que apareciera una desinstalación y reinstalación de las etiquetas. ¿Por qué? ¿Dónde se guardan las etiquetas? Después de desinstalar el programa, se eliminaron la carpeta de la base de datos y la carpeta appdata.
¿Cómo reproducirse? Instale neo4j -> use el ejemplo de la base de datos de películas -> crear (l: SomeLabel {nombre: "Una etiqueta extraña"}) -> eliminar el nodo -> detener neo, crear una nueva carpeta -> iniciar neo -> crear shema de película -> match (n) return (n) -> SomeLabel aparece, incluso si cambió la carpeta o realiza una desinstalación / instalación.
¿Hay una manera de eliminar etiquetas incluso si no hay ningún nodo con él?
Acabo de encontrar una solución (con neo4j 2.2 M04). Volcar el contenido de la base de datos en un archivo, tirar la base de datos y luego volver a insertar el volcado. Sin embargo, solo funciona para bases de datos pequeñas.
Paso 1: volcar el contenido, usando neo4j-shell
$NEO4J_HOME/bin/> neo4j-shell -c ''dump match a return a;'' > dump.temp
Paso 2: deseche la base de datos (hay muchas maneras de eliminar la carpeta $ NEO4J_HOME / data / graph.db / o donde sea que se encuentre su carpeta de base de datos)
Paso 3: inserta el volcado de nuevo, usando neo4j-shell
$NEO4J_HOME/bin/> neo4j-shell -file dump.temp
Esto debería mostrar estadísticas sobre cuántos nodos, relaciones, propiedades y etiquetas se han creado.
(Y Step4 sería eliminar ese archivo dump.temp, no tiene ninguna razón para vivir dentro de la carpeta bin.)
Lo que me parece extraño (y quizás Michael o alguien más de neo4j podría arrojar algo de luz sobre esto): en mi caso, Step3 me dijo que se habían creado más de 50 etiquetas. Sin embargo, cuando abro la interfaz web, solo se enumeran las 15 etiquetas que utilizo. Así que el DB se siente limpio ahora. No estoy completamente seguro de que esté limpio.
Esto parece estar resuelto por la versión 2.3.0.
Como ejemplo, supongamos que hemos creado una película en el navegador de datos como:
CREATE(m:Movie:Cinema:Film:Picture{title:"The Matrix"})
Podríamos consultarlo con
MATCH(m:Movie)
WHERE m.title = "The Matrix"
RETURN m
Tendría 4 etiquetas: Movie
, Cinema
, Film
e Picture
Para eliminar la etiqueta de Picture
de todas las películas:
MATCH(m:Movie)
REMOVE m:Picture
RETURN m
Para eliminar la etiqueta de la Picture
de una sola película:
MATCH(m:Movie)
WHERE m.title = "The Matrix"
REMOVE m:Picture
RETURN m
La razón es que cuando se crea una etiqueta, Neo4j indexa esta etiqueta. Puede eliminar el nodo pero el índice se mantendrá.
En una conjetura, si coloca el índice en la etiqueta, desaparecerá de la GUI (NOTA: no tengo acceso a Neo4j en este momento para verificar esta teoría)
No hay en este momento (Neo4j 2.0.1) una forma de eliminar explícitamente una etiqueta una vez que se haya creado. El navegador Neo4j mostrará todas las etiquetas informadas por el punto final REST en:
http://localhost:7474/db/data/labels
Por separado, la barra lateral del navegador Neo4j que muestra las etiquetas no actualiza correctamente la lista cuando pierde la conexión con Neo4j. Una recarga del navegador web debería funcionar.
Por último, hubo un error en la visualización del navegador Neo4j que mostraba todas las etiquetas para las que se había creado un estilo. Si utiliza una versión de Neo4j que tiene el error, puede borrar el estilo haciendo clic en "Ver hoja de estilo" en el inspector de propiedades, luego haciendo clic en el icono del extintor de incendios. Todo eso necesita una mejora de la usabilidad, la verdad.
Saludos, Andreas
Supongamos que hemos creado un producto de nodo como abajo
PRODUCT_MASTER { product_code :"ABC", product_name:"XYX }
CREATE INDEX ON :PRODUCT_MASTER (product_code);
Ahora, incluso si elimino todos los nodos de PRODUCT_MASTER del gráfico, seguiremos obteniendo PRODUCT_MASTER en el navegador bajo las etiquetas de Node Para deshacernos de lo mismo, también debemos eliminar el índice.
DROP INDEX ON :PRODUCT_MASTER (product_code);
En neo4j-shell, escriba el comando "esquema" para obtener la lista de índices y las propiedades correspondientes.
Para resumir, en caso de que eliminemos todos los nodos de un tipo en particular, también necesita eliminar los índices en ese nodo.