Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Bug: memory_search returns empty results despite valid embeddings and correct vector indexes #89

@AhmedHamadto

Description

@AhmedHamadto

Description

memory_search returns empty results for broad/vague queries, even with threshold=0, despite entities having valid 384-dimensional embeddings and correctly configured HNSW vector indexes.

Update (after further testing): Search works correctly for focused, semantically meaningful queries. The issue is specific to broad meta-queries that don't correspond to any single entity's semantic content.

Steps to Reproduce

# ✅ WORKS — focused queries
memory_search(query="Rust", memory_types=["entities"], threshold=0.3)
# Returns: {"entities": [{"name": "Rust", "type": "OBJECT", ...}]}

memory_search(query="Greengrass deployment", memory_types=["entities", "preferences"], threshold=0.3)
# Returns: {"entities": [...], "preferences": [...]}  — correct results

# ❌ FAILS — broad meta-queries
memory_search(query="all entities technologies devices decisions architecture", memory_types=["entities"], threshold=0)
# Returns: {"entities": []}  — empty even at threshold=0

# ✅ WORKS — same broad query via direct Neo4j vector search
# CALL db.index.vector.queryNodes('entity_embedding_idx', 5, <query_embedding>)
# Returns 5 results with reasonable similarity scores

Environment

  • Neo4j 5.26.4
  • Embedding model: all-MiniLM-L6-v2 (sentence-transformers, 384 dimensions)
  • All 5 vector indexes: ONLINE, 384d, cosine similarity
  • 28 entities, all with valid 384d embeddings

Analysis

The vector indexes and stored embeddings are healthy (verified via direct Cypher). The issue is in the Python search pipeline — possible causes:

  1. Embedding generation fails silently for long/vague queries — the embedder returns null/zero vector, causing the vector search to return nothing
  2. Query embedding produces vectors outside the similarity space of stored entity embeddings
  3. Result filtering after vector search removes valid results

Impact

Core semantic search works for meaningful queries. This is an edge case affecting broad "give me everything" style queries, not a complete search failure. Severity: MEDIUM.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions