Tag: azure search .net sdk

使用AzureSearch SDK与30-40 ISearchIndexClients的静态字典的含义

我有一个ASP.NET Web应用程序,它在5-6个搜索服务中使用30-40个不同的搜索索引(不同的客户端在不同的定价层中)。 目前,我正在编组一个新的ISearchServiceClient实例,然后根据发出调用的客户端为所需的特定索引提供相应的ISearchIndexClient 。 为了提高性能,我考虑在应用程序启动时整理所有ISearchIndexClients并将它们放入Dictionary对象: public static Dictionary SearchIndexes; 这样就可以直接从静态字典中调用任何特定的索引并像这样使用: SearchIndexes[“IndexName”].Documents.Search(searchText, searchParameters); 我希望这会加快查询和索引更新时间,特别是在“热门”索引上。 我担心的是,这可能会引入内存泄漏,性能问题和其他未知因素。 我没有看到使用静态可用的SearchServiceClient或SearchIndexClient的任何示例,所以我对这种方法有点不安。 我对社区的问题是: 我的计划听起来不错? 它实际上会提高性能吗? 有什么缺点或影响(如果有的话?) 如果指数的数量随着时间的推移而增加(例如60-70),那么我会开始看到弊端吗? 将SearchServiceClients编组到字典中并根据需要从那里连接到相应的SearchIndexClient会更有意义: public static Dictionary SearchServices; var searchIndexClient = SearchServices[“ServiceName”].Indexes.GetClient(“IndexName”); searchIndexClient.Documents.Search(searchText, searchParameters);