Skip to content

Conversation

@Milofax
Copy link

@Milofax Milofax commented Jan 20, 2026

Summary

  • Adds summary_embedding field to EntityNode for semantic search over node summaries
  • Introduces new NodeSearchMethod.summary_similarity for querying nodes by summary content
  • Enables finding nodes when query terms appear in summaries but not in names

Example: Query "when to write unit tests" now finds a node named "Software Testing Best Practices" with summary "describes when to write unit tests, integration tests, e2e tests".

Changes

Data Model (nodes.py)

  • Added summary_embedding: list[float] | None field to EntityNode
  • Added generate_summary_embedding() method (mirrors generate_name_embedding())
  • Added load_summary_embedding() method for all providers
  • Extended create_entity_node_embeddings() for batch generation
  • Same changes applied to CommunityNode for consistency

Search (search_config.py, search_utils.py, search.py)

  • Added NodeSearchMethod.summary_similarity enum value
  • Implemented node_summary_similarity_search() function
  • Integrated into node_search() dispatch

Persistence (node_db_queries.py)

  • Updated save queries for all 4 providers (Neo4j, FalkorDB, Neptune, Kuzu)

Recipes (search_config_recipes.py)

  • Added summary_similarity to all node-related search recipes (RRF, MMR, etc.)

Test plan

  • Lint passes (make lint)
  • Type checking passes (pyright)
  • Manual testing via MCP server confirms semantic search over summaries works
  • Backward compatible - summary_embedding is optional (None by default)

🤖 Generated with Claude Code

Milofax and others added 2 commits January 20, 2026 19:05
- Add summary_embedding field to EntityNode and CommunityNode
- Add generate_summary_embedding() and load_summary_embedding() methods
- Extend create_entity_node_embeddings() to generate summary embeddings
- Update save queries for all DB providers (Neo4j, FalkorDB, Neptune, Kuzu)
- Add NodeSearchMethod.summary_similarity enum value
- Implement node_summary_similarity_search() function
- Integrate summary search into node_search() with RRF reranking

This enables searching nodes by their summary content, allowing queries
like "when to write tests" to find nodes with descriptive summaries.

Closes: Milofax/marakanda-infrastructure#1

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add summary_similarity search method to all node-related search
recipes so the new summary_embedding feature is actually used
in searches performed by the MCP server and other consumers.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@Milofax
Copy link
Author

Milofax commented Jan 22, 2026

Hi maintainers! 👋

I noticed the CI workflows (Tests, Lint, Pyright) are waiting for approval. Could someone please approve them so we can verify the changes pass all checks?

I also have a few other PRs open (#1156, #1157, #1159, #1160) that are in the same state - would appreciate if those could be approved as well when you have a moment.

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant