---
title: nexyron.semantic.edges
url: https://nexyron.tech/docs/cypher/procedures/semantic/nexyron-semantic-edges
description: Normal semantic search should use one query:
---

# nexyron.semantic.edges

## Generic Description

Debug-only semantic retrieval of edges.

Normal semantic search should use one query:

```cypher
CALL nexyron.semantic.search({query: 'fraud cluster', k: 5})
YIELD result_kind, item_id, node_id, edge_id, source, name, score, text, metadata_json
RETURN result_kind, item_id, node_id, edge_id, source, name, score, text, metadata_json
ORDER BY score DESC
```

Semantic search procedures expose vector and semantic retrieval surfaces through Cypher.

## Consumer-Level Explanation

Use `nexyron.semantic.search` for normal semantic retrieval. `nexyron.semantic.edges` is retained only for debugging the edge slice of the unified semantic index without graph-node, abstraction, or artifact results. Use these procedures when retrieval should combine semantic scoring with graph filters, metadata, and planner-visible row shaping.

## Conceptual Explanation

`nexyron.semantic.edges` should be read as one named procedure contract in the broader Nexyron Cypher surface. The procedure call is not only a syntax hook: it defines what runtime state, projection, registry entry, or graph algorithm is being asked to operate, and it determines which output columns downstream `YIELD`, `WITH`, and `RETURN` stages can safely use.

## More Detailed Explanation

This procedure returns only edge-index hits. It is useful for index debugging when relationships carry semantically interesting text, but it is not the product search surface.

The returned `score` is a cosine-similarity relevance score. Higher values are more similar to the query; sort with `ORDER BY score DESC` when you need explicit ordering after additional matches.

## Advanced Example

This debug-only example isolates the edge slice of the unified semantic index. Use the unified procedure unless you are checking whether edge embeddings exist and are searchable.

```cypher
CALL nexyron.semantic.search({query: 'identity fraud cluster', k: 10, ef: 200})
YIELD result_kind, item_id, node_id, edge_id, source, name, score, text, metadata_json
WITH result_kind, edge_id, score, text
WHERE result_kind = 'edge'
MATCH (u:User)-[e:INTERACTED_WITH]->(d:Document)
WHERE id(e) = edge_id
TIME e.ts BETWEEN datetime('2025-01-01T00:00:00Z') AND datetime('2025-03-01T00:00:00Z')
WITH edge_id, score, date_trunc('day', e.ts) AS day_bucket, properties(d) AS doc_map, unpivot(properties(d.metadata)) AS metadata_rows
RETURN edge_id, score, day_bucket, keys(doc_map) AS doc_keys, metadata_rows
LIMIT 10
```

## Real Use Cases

-   verifying graph-edge entries in the unified semantic index
-   checking whether relationship text is being embedded
-   comparing edge-index behavior against the unified search output
-   compose the procedure output with `YIELD`, `WITH`, and `RETURN` rather than hiding follow-up logic outside Cypher

## Real Limitations And Tradeoffs

-   edge abstractions are often harder to present cleanly to end users
-   procedure calls are explicit contracts; missing state, unsupported parameters, or absent artifacts should fail rather than silently falling back
