I work on a project to help users memorize Japanese Hiragana. The goal is to find the least known kana for a specific user and store it's id to a buffer node to change the knowledge level (type: integer, 0-5) of the kana with the next query/ Bloom search.
My Cypher query for this is:
MATCH (n:Hiragana) WITH n, min(n.knowledge) AS ddd MATCH (m:Hiragana) WHERE m.knowledge = ddd WITH m, rand() as r ORDER BY r LIMIT 1 WITH m, m.id as chosenId match (b:Buffer) SET b.content=chosenId RETURN m
Works great in the Browser, but when I try to execute the query as a Bloom Search I get:
"AN ERROR OCCURRED WHILE EXECUTING SEARCH:
Writing in read access mode not allowed. Attempted write to internal graph 0 (neo4j)"
I tried docs and forum, but haven't been successful in finding the solution
How do I set the permission for the Bloom to manipulate data in the db? Is it possible at all?
Hi @samplar.video ,
You have in your query: SET b.content=chosenId
This is a write command, and as a result, Bloom is not allowing you to do this
Thank you Ljubica!
Yes, I see that. Does it mean that Bloom is always ''read only"? Or there's a way that I can configure it to perform db-modifying queries as well?
Thanks for highlighting this issue. We are looking into this issue. So far, it appears that Bloom's search phrases are unable to perform write transactions on certain Neo4j database versions, specifically 4.1 and higher.
Normally, you would be able to perform write operations using Bloom search phrases with all Neo4j databases.
I will keep you posted on here on our progress, please let me know if you have any questions in the meantime.
this issue has been fixed in our latest Bloom 1.6.1 release and manipulating data with Bloom's search phrases is possible again (provided the role of the logged in user has been granted the necessary permissions).
Please let me know if you have any further questions on this!