【发布时间】:2025-12-09 04:20:03
【问题描述】:
我将 dtSearch 与 SQL 数据库结合使用,并希望维护一个包含所有 DocId 及其相关文件名的表。从那里,我将添加一个带有我的外键的列,以允许我结合文本和数据库搜索。
我有代码可以简单地返回索引中的所有记录并将它们一一添加到数据库中。然而,这需要永远,并且没有解决如何在将新记录添加到索引时简单地附加新记录的问题。但以防万一:
MyDatabaseContext db = new StateScapeEntities();
IndexJob ij = new dtSearch.Engine.IndexJob();
ij.IndexPath = @"d:\myindex";
IndexInfo indexInfo = dtSearch.Engine.IndexJob.GetIndexInfo(@"d:\myindex");
bool jobDone = ij.Execute();
SearchResults sr = new SearchResults();
uint n = indexInfo.DocCount;
for (int i = 1; i <= n; i++)
{
sr.AddDoc(ij.IndexPath, i, null);
}
for (int i = 1; i <= n; i++)
{
sr.GetNthDoc(i - 1);
//IndexDocument is defined elsewhere
IndexDocument id = new IndexDocument();
id.DocId = sr.CurrentItem.DocId;
id.FilePath = sr.CurrentItem.Filename;
if (id.FilePath != null)
{
db.IndexDocuments.Add(id);
db.SaveChanges();
}
}
【问题讨论】:
-
在哪里可以找到解决方案?我一直在研究同样的问题。另外,您是否找到了在索引更新后更改 docId 的解决方法?
-
还没有运气,杰森。如果/当情况发生变化时,我会在这里发布一些内容。
标签: sql-server dtsearch