Skip to main content

Posts

Showing posts from August, 2023

Full-Text Search with the Neo4j Graph Database

(UPDATED May 2024)   Now that we have discussed a full technology stack based on Neo4j (or other graph databases), and that we a design and implementation available from the open-source project BrainAnnex.org  , what next?  What shall we build on top? Well, how about  Full-Text Search ?  This article is part of a growing, ongoing series on Graph Databases and Neo4j Full-Text Searching/Indexing The Brain Annex open-source project includes an implementation of a design that uses the convenient services of its Schema Layer , to provide indexing of word-based documents using Neo4j. The python class FullTextIndexing ( source code ) provides the necessary methods, and it can parse both plain-text and HTML documents (for example, used in "formatted notes"); parsing of PDF files and other formats will be added at a later date. No grammatical analysis ( stemming or lemmatizing ) is done on the text.  However, a long list of common word ("stop ...

A Technology Stack on Top of a (Neo4j) Graph Database

Putting it All Together : a Technology Stack on top of a (Neo4j) Graph Database (UPDATED June 2024)  For many practical use cases, one needs a full data-management solution, not just a database.   So, armed with the Schema Layer discussed in the previous part , the next natural step is to add a web API and possibly a User Interface . This article is part of a growing,  ongoing  series  on Graph Databases and Neo4j   The Web API Layer / Data Manager The Web API Layer ("Data Manager")  is in some ways the most straightforward layer - because the "heavy lifting" is done by the Schema Layer.   I've been involved in projects that utilized an inadequate Schema Layer - and in those situations the API Layer ends up taking on an immense amount of responsibility that don't logically belong there; the end result being a lot of difficult, error-prone and non-modular development that feels like "pulling teeth"! By contrast, with a...