更新Azure搜索文档架构

时间:2018-04-23 20:39:08

标签: c# azure-search

尝试通过代码优先方法更新Azure搜索文档架构时遇到错误。

我们当前的实体有架构:

public class SearchDocument
{
    [DataAnnotations.Key]
    public string ID;
    [IsSearchable]
    public string Title;
    [IsSearchable]
    public string Content;
}

但我想添加一个字段,因此它变为:

public class SearchDocument
{
    [DataAnnotations.Key]
    public string ID;
    [IsSearchable]
    public string Title;
    [IsSearchable]
    public string Content;
    [IsSortable]
    public bool Prioritize;
}

当运行重新索引查询时,我收到错误:

"The request is invalid. Details: parameters : The property 'Prioritize' does not exist on type 'search.documentFields'. Make sure to only use property names that are defined by the type."

哪个有意义......但是如果架构匹配,是否有预先检查方法,并更新Azure架构?我知道其他云数据库,比如Parse(死)和Backendless(自从我上次使用它以来可能已经改变),基于POST实体模式进行自动实体更新,那么在Azure中有没有办法做到这一点?

found a coupleon MSDN有关更新索引器的文章,但未能测试(由于关闭开发环境......我知道,对不起)。< / p>

特别关注我的是第一个链接中的警告:

Important
Currently, there is limited support for index schema updates. Any schema 
updates that would require re-indexing such as changing field types are not 
currently supported.

这甚至可能吗?或者我是否必须在本地更新架构,然后登录Azure门户并手动更新索引器架构?非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

Azure Search确实支持对Azure搜索索引的增量更改。这意味着您可以添加新字段(就像您在此处使用Prioritize字段一样)。根据您所说的内容,您似乎正在使用.NET SDK。出于这个原因,我想知道你是否尝试过CreateOrUpdate index operation?例如:

serviceClient.Indexes.CreateOrUpdate