-
Notifications
You must be signed in to change notification settings - Fork 24
Add support for semantic search to the MCP server #45
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Changes from all commits
Commits
Show all changes
18 commits
Select commit
Hold shift + click to select a range
cee8602
Add support for semantic search to the MCP server
alexsku da40e24
formatting
alexsku 734219d
more fixes
alexsku 0062a1c
linter errors
alexsku db1cdc5
added an integration test for semantic search
alexsku 3cd8534
linter fix
alexsku c72d67a
some fixes
alexsku b447791
fixed missing comments
alexsku 862627f
formatting
alexsku 7f767b5
another fix
alexsku 8c88441
formatting
alexsku 782a0b5
fixed the unit test
alexsku a83928f
ruff+linter
alexsku 8b0beb9
fixed another test
alexsku f5a15b7
more fixes
alexsku d209f0e
Apply suggestion from @mayurinehate
alexsku f1cf6ed
feedback
alexsku bf04f47
fixes
alexsku File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,111 @@ | ||
fragment SearchEntityInfo on Entity { | ||
urn | ||
|
||
# For some entity types, the urns are not human-readable. For those, | ||
# we pull the name as well. | ||
... on Dataset { | ||
properties { | ||
name | ||
} | ||
} | ||
... on Chart { | ||
properties { | ||
name | ||
} | ||
} | ||
... on Dashboard { | ||
properties { | ||
name | ||
} | ||
} | ||
... on Container { | ||
properties { | ||
name | ||
} | ||
} | ||
... on GlossaryTerm { | ||
properties { | ||
name | ||
} | ||
} | ||
... on GlossaryNode { | ||
properties { | ||
name | ||
} | ||
} | ||
... on Domain { | ||
properties { | ||
name | ||
} | ||
} | ||
... on DataProduct { | ||
properties { | ||
name | ||
} | ||
} | ||
} | ||
|
||
fragment FacetEntityInfo on Entity { | ||
... on Dataset { | ||
name | ||
properties { | ||
name | ||
} | ||
} | ||
... on Container { | ||
subTypes { | ||
typeNames | ||
} | ||
properties { | ||
name | ||
} | ||
} | ||
... on GlossaryTerm { | ||
properties { | ||
name | ||
} | ||
} | ||
} | ||
|
||
query semanticSearch( | ||
$types: [EntityType!] | ||
$query: String! | ||
$orFilters: [AndFilterInput!] | ||
$count: Int! | ||
) { | ||
semanticSearchAcrossEntities( | ||
input: { | ||
query: $query | ||
count: $count | ||
types: $types | ||
orFilters: $orFilters | ||
searchFlags: { skipHighlighting: true, maxAggValues: 5 } | ||
} | ||
) { | ||
count | ||
total | ||
searchResults { | ||
entity { | ||
...SearchEntityInfo | ||
} | ||
# TODO: Consider adding these fields for enhanced semantic search experience: | ||
# score # Cosine similarity score (0-1) for semantic relevance | ||
} | ||
facets { | ||
field | ||
displayName | ||
aggregations { | ||
value | ||
count | ||
displayName | ||
entity { | ||
...FacetEntityInfo | ||
} | ||
} | ||
} | ||
# TODO: Consider adding metadata section for search algorithm transparency: | ||
# metadata { | ||
# scoringMethod # e.g., "COSINE_SIMILARITY" vs "BM25" | ||
# } | ||
} | ||
} |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
so this is exactly same as search.gql except different endpoints and no scrollId input..