【发布时间】:2017-12-15 14:34:42
【问题描述】:
小故事: 我正在使用 azure 搜索服务,看起来它没有索引添加到我的视图中的新行(数据源指向视图)。
长篇大论: 我有一个视图,它是从我的数据库中的许多表中创建的。我创建了一个指向该视图的数据源。该视图有很多列,此处相关的是 2:Id 和 ChangeIndicator。更改指示符 (int) 具有计算值,该值是对用于构建视图的表中更改的一些值求和的结果。 我定义了一个索引,映射到我的数据源和一个索引器。索引器正确填充索引(第一次),它看到我视图中的所有行并正确索引数据(据我检查)。
问题是当我在视图中添加新行时 - 这些行没有被索引。
我使用 API 调用创建数据源、索引和索引器。
数据源是这样创建的:
{
"name": "cs5datasource",
"description": "Data source for cs search",
"type": "azuresql",
"credentials": { "connectionString" : "XXX - Connection string - XXX" },
"container": {"name": "UserDataAggregatedView"},
"dataChangeDetectionPolicy": {
"@odata.type" : "#Microsoft.Azure.Search.HighWaterMarkChangeDetectionPolicy",
"highWaterMarkColumnName" : "ChangeIndicator"
}
}
索引是这样创建的:
{
"name": "cs5indexer",
"description": "Indexer service",
"dataSourceName": "cs5datasource",
"targetIndexName": "cs5index",
"schedule": {"interval" : "PT5M", "startTime" : "2017-06-24T22:00:00Z"}
}
添加新行(未编入索引的行)后,如果我删除索引器并再次创建它,则视图已正确编入索引。似乎问题是检测新行。添加的新行是有效的,索引过程不会产生错误。
我需要一种将新添加的行索引到我的视图的方法,以及一种从索引中删除已删除行的方法。如何做到这一点?
谢谢。
后期编辑: 新添加的行没有被索引。 我添加的新行如下所示:
Id | name | lang | proffesion | changeIndicator
26 | test_011 | en | history teacher | 49536867
【问题讨论】: