[mob] Fix: use DB to identify indexed fileIDs
This commit is contained in:
@@ -63,6 +63,19 @@ class EmbeddingsDB {
|
||||
return _convertToEmbeddings(results);
|
||||
}
|
||||
|
||||
// Get FileIDs for a specific model
|
||||
Future<Set<int>> getFileIDs(Model model) async {
|
||||
final db = await _database;
|
||||
final results = await db.getAll(
|
||||
'SELECT $columnFileID FROM $tableName WHERE $columnModel = ?',
|
||||
[modelToInt(model)!],
|
||||
);
|
||||
if (results.isEmpty) {
|
||||
return <int>{};
|
||||
}
|
||||
return results.map((e) => e[columnFileID] as int).toSet();
|
||||
}
|
||||
|
||||
Future<void> put(Embedding embedding) async {
|
||||
final db = await _database;
|
||||
await db.execute(
|
||||
|
||||
@@ -225,7 +225,8 @@ class SemanticSearchService {
|
||||
Future<List<int>> _getFileIDsToBeIndexed() async {
|
||||
final uploadedFileIDs = await FilesDB.instance
|
||||
.getOwnedFileIDs(Configuration.instance.getUserID()!);
|
||||
final embeddedFileIDs = _cachedEmbeddings.map((e) => e.fileID).toSet();
|
||||
final embeddedFileIDs =
|
||||
await EmbeddingsDB.instance.getFileIDs(_currentModel);
|
||||
uploadedFileIDs.removeWhere(
|
||||
(id) => embeddedFileIDs.contains(id),
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user