Skip to content

.Net: [MEVD] Create indexes on data properties when IsFilterable is true #11185

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

Closed
roji opened this issue Mar 25, 2025 · 3 comments
Closed

.Net: [MEVD] Create indexes on data properties when IsFilterable is true #11185

roji opened this issue Mar 25, 2025 · 3 comments
Assignees
Labels
Build Features planned for next Build conference msft.ext.vectordata Related to Microsoft.Extensions.VectorData .NET Issue or Pull requests regarding .NET code

Comments

@roji
Copy link
Member

roji commented Mar 25, 2025

No description provided.

@roji roji added .NET Issue or Pull requests regarding .NET code Build Features planned for next Build conference msft.ext.vectordata Related to Microsoft.Extensions.VectorData labels Mar 25, 2025
@roji roji moved this to Backlog: Planned in Semantic Kernel Mar 25, 2025
@github-actions github-actions bot changed the title [MEVD] [SQL Server] Create indexes on data properties when IsFilterable is true .Net: [MEVD] [SQL Server] Create indexes on data properties when IsFilterable is true Mar 25, 2025
@markwallace-microsoft markwallace-microsoft moved this from Backlog: Planned to Bug in Semantic Kernel Mar 25, 2025
@adamsitnik
Copy link
Member

I took a brief look at the issue and it seems that other connectors also don't create dedicated indexes in such cases.

Example: PostgreSQL creates indexes only for the vector properties:

var createIndexCommands =
PostgresVectorStoreRecordPropertyMapping.GetVectorIndexInfo(properties)
.Select(index =>
this._sqlBuilder.BuildCreateVectorIndexCommand(this._schema, tableName, index.column, index.kind, index.function, ifNotExists)
);

public static List<(string column, string kind, string function)> GetVectorIndexInfo(IReadOnlyList<VectorStoreRecordProperty> properties)
{
var vectorIndexesToCreate = new List<(string column, string kind, string function)>();
foreach (var property in properties)
{
if (property is VectorStoreRecordVectorProperty vectorProperty)

@roji roji changed the title .Net: [MEVD] [SQL Server] Create indexes on data properties when IsFilterable is true .Net: [MEVD] Create indexes on data properties when IsFilterable is true Mar 27, 2025
@roji
Copy link
Member Author

roji commented Mar 27, 2025

Good catch, thanks for looking at the other connectors (is it true only for the other relational ones, or also for the other non-relational ones? If so, that would mean that IsFilterable is effectively being ignored...

I've modified the title of the issue, for it to track index creation in general. That's of course more work... /cc @westey-m @dmytrostruk

@adamsitnik
Copy link
Member

Fixed by #11233

@markwallace-microsoft markwallace-microsoft moved this from Bug to Sprint: Done in Semantic Kernel Apr 15, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Build Features planned for next Build conference msft.ext.vectordata Related to Microsoft.Extensions.VectorData .NET Issue or Pull requests regarding .NET code
Projects
Status: Sprint: Done
Development

No branches or pull requests

3 participants