Tag: azure search

连接Azure Search后使用Document DB的好处

我正在为Azure Document DB存储数据。 为了允许搜索我的数据的描述字段,我已经将我的文档数据库存储库与Azure搜索连接起来,如下所述: https : //docs.microsoft.com/en-us/azure/documentdb/documentdb-search -indexer 我还需要通过几个参数来过滤搜索结果。 我发现自己在Azure搜索索引器中添加了更多字段,直到我几乎将我的数据库实体复制到Azure搜索实体。 问题 – 如果我需要搜索我的数据并决定使用Azure搜索,将数据保留在Document DB中是否有任何好处,还是仅使用Azure Search再次对其进行建模会更好?

使用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);