Saltar al contenido

Búsqueda de texto libre de Neo4j combinada con consulta de relación

Solución:

En este caso particular, la búsqueda de texto completo no será una ayuda en cuanto al rendimiento, ya que esto seleccionaría todas las reseñas que contengan ‘excelente actuación’ (de las cuales probablemente haya una gran, gran cantidad) y luego necesitaría filtrar a las que pertenecen al usuario en cuestión.

Esto es mucho menos eficaz que hacer coincidir las reseñas del usuario en cuestión (de las cuales debería haber comparativamente muchas menos) y luego filtrarlas por la palabra “gran actuación”.

Puede usar la palabra clave CONTAINS en su cláusula WHERE para asegurarse de que la propiedad contenga la subcadena dada, como en la respuesta de Raj (aunque distingue entre mayúsculas y minúsculas):

MATCH (:User{ id: 123 })->[:Wrote]->(review:Review)->[:Reviewing]->(:Movie) 
WHERE review.text CONTAINS 'great acting'
...

También puede crear un índice sobre esto, aunque es mucho más eficiente si no se usa para la búsqueda aquí y en su lugar comienza con el nodo de usuario (puede EXPLICAR la consulta para determinar qué índices se usan para encontrar el nodo de inicio (s )).

Si necesita una búsqueda de palabras clave que no distinga entre mayúsculas y minúsculas, puede usar el operador = ~ regex para esto, aunque no está respaldado por índices. Por ejemplo:

MATCH (:User{ id: 123 })->[:Wrote]->(review:Review)->[:Reviewing]->(:Movie) 
WHERE review.text =~ '(?i).*great acting.*'
...
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *