🤝 Optimizing vector retrieval with advanced graph-based metadata techniques using LangChain and Neo4j 🤝 Text embeddings and vector similarity search help us find documents by understanding their meanings and how similar they are to each other. However, text embeddings aren’t as effective when sorting information based on specific criteria like dates or categories -- for example, if you need to find all documents created in a particular year or documents tagged under a specific category like “science fiction.” This is where metadata filtering or filtered vector search comes into play, as it can effectively handle those structured filters, allowing users to narrow their search results according to specific attributes. 💡 Metadata filtering followed by vector similarity search can increase the accuracy and relevance of the search results. Graph databases like Neo4j can store highly complex and connected structured data alongside unstructured data. Together, you can greatly narrow down the relevant document subset using a structured graph-based metadata filter. Read more in this blog post to learn how to implement graph-based metadata filtering using LangChain and Neo4j ➡ https://lnkd.in/gYUj4WEF
This is very useful and a need for critical business use case - however, is there similar approach using NetworkX graph object. I have been trying to integrate my use case with networkx - creating a separate library - similar handy technique can help.
You can do this simply in SurrealDB by storing metadata alongside your embeddings
So it would be similar to a self retriever?
Hannes Voigt ... spoke about this yesterday... ;-)
Tudor Stoian … table of contents discussion.
Fellow at Exxeta
1mointeresting. would have stored the unstructured data as attribute to the corresponding node. what's the benefits you see storing unstructured data not as attributes, but as additional nodes (if any)?