创建天蓝色搜索索引时无法识别 IsSearchable

Posted

技术标签:

【中文标题】创建天蓝色搜索索引时无法识别 IsSearchable【英文标题】:IsSearchable not recognized when creating azure search index 【发布时间】:2021-02-12 18:56:46 【问题描述】:

我正在尝试为以下模型创建索引。

public class Booking
    
        [System.ComponentModel.DataAnnotations.Key]
        [IsSearchable,IsFilterable,IsSortable]
        public string BookId  get; set; 

        [IsSearchable, IsFilterable]
        public string BooknName  get; set; 
    

创建索引的代码

 FieldBuilder fieldBuilder = new FieldBuilder();
 var searchFields = fieldBuilder.Build(typeof(Booking));
 var definition = new SearchIndex(indexName, searchFields);
 indexClient.CreateOrUpdateIndex(definition);

但是当我查看定义并创建索引并将所有这些设置为 false 时,这会以某种方式忽略 IsSearchable/IsFilterable

我在这里还缺少其他属性吗?我正在使用Azure.Search.Documents - Version=11.1.1.0

【问题讨论】:

你有没有拼写错误?看起来在 Booking 类中您有“BooknName”,您的索引称为“bookname”。 您是从 SDK 版本 10 迁移吗? IsSearchable 和其他属性来自什么命名空间? 啊,是的,我刚刚在这里创建了一个小版本的类。实际课程是书名,并且有更多字段。 @BruceJohnston:我是新手,正在尝试全新的。它来自Microsoft.Azure.Search.Service, Version=10.1.0.0 查看希思的回复。您正在尝试将旧 SDK (Microsoft.Azure.Search.*) 中的属性与新 SDK (Azure.Search.Documents) 一起使用,但它们不能一起使用。 【参考方案1】:

由于您正在实例化FieldBuilder,我假设您正在使用Azure.Search.Documents。在这种情况下,您需要使用我们添加的新属性,例如SearchableFieldAttribute。前面的属性有效地对应于属性。示例见https://github.com/Azure/azure-sdk-for-net/blob/master/sdk/search/Azure.Search.Documents/samples/Sample04_FieldBuilderIgnore.md。

Microsoft.Azure.Search 很快就会被弃用,顺便说一句。

【讨论】:

以上是关于创建天蓝色搜索索引时无法识别 IsSearchable的主要内容,如果未能解决你的问题,请参考以下文章

使用弹性搜索设计搜索服务

UICollectionView 内容无法识别(搜索时)

OFFICE2007总是在创建索引,无法搜索

RestRequest 在本地工作,但不是来自天蓝色“请求被中止:无法创建 SSL/TLS 安全通道。”

SSIS 不识别索引?

如何识别文件夹中是不是存在 Lucene.Net 索引?