问题标签 [azure-search-.net-sdk]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1390 浏览

azure - Azure Search .net SDK-如何使用“FindFailedActionsToRetry”?

使用 Azure Search .net SDK,当您尝试索引文档时,您可能会遇到异常IndexBatchException

从这里的文档

e.FindFailedActionsToRetry 应该如何用于创建一个新批次以重试失败操作的索引?

我创建了一个这样的函数:

但我认为这部分是错误的:

0 投票
3 回答
1211 浏览

.net - 如何等待 Azure 搜索完成索引文档?用于集成测试目的

设想

我正在构建一套自动化集成测试。每个测试在查询和验证预期结果之前将数据推送到 Azure 搜索索引。

问题

索引在服务中异步发生,并且在索引调用成功返回后数据不会立即可用。
测试在大多数时候执行当然太快了。

我试过的

我尝试查询文档,直到找到:

但奇怪的是,后面的搜索查询通常不会找到任何东西:

使用任意暂停有效,但不能保证,我希望测试尽可能快地执行。


Azure 搜索文档:

最后,上面示例中的代码延迟了两秒钟。索引在 Azure 搜索服务中异步发生,因此示例应用程序需要等待一小段时间以确保文档可用于搜索。像这样的延迟通常只在演示、测试和示例应用程序中是必需的。

没有不影响测试性能的解决方案吗?

0 投票
2 回答
850 浏览

.net - Azure Search .Net SDK - 组合 DocumentSearchResult 类型结果的推荐方法是什么调用 ContinueSearch 后?

Azure Search .Net SDK 可能不会将所有请求的结果返回到请求。在这种情况下,它将返回一个ContinuationToken作为结果 ( DocumentSearchResult ) 的一部分。

从这里:

如果 Azure 搜索无法在单个响应中包含所有结果,则返回的响应将包含一个可以传递给 ContinueSearch 以检索更多结果的延续令牌。有关详细信息,请参阅 DocumentSearchResultBase.ContinuationToken。请注意,此方法并非旨在帮助您实现搜索结果的分页。您可以使用 Search 方法的 Top 和 Skip 参数实现分页。

因此,建议在返回 ContinuationToken 时,调用ContinueSearch以获取其余结果。

结合两个 Type 对象DocumentSearchResult<T>(一个来自原始搜索,另一个来自 ContinueSearch)的最佳/推荐方法是什么,以便我可以将所有结果一起返回给消费者?

这是我的第一次尝试(“PerformSearch”是要调用的方法,应该返回所有结果):

0 投票
2 回答
13523 浏览

asynchronous - 任务被取消 - 这是什么意思?

我正在使用 Azure 搜索 .Net SDK。

我正在调用这样的同步(非异步)函数:

它通常有效。我没有使用任何异步函数,但不知何故,我刚刚得到的错误看起来像一个异步错误:

在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable 1.ConfiguredTaskAwaiter.GetResult() at Microsoft.Azure.Search.DocumentsOperations.<DoContinueSearchWithHttpMessagesAsync>d__153.MoveNext() --- 从上一个堆栈跟踪结束引发异常的位置 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() .Runtime.CompilerServices.ConfiguredTaskAwaitable1.ConfiguredTaskAwaiter.GetResult() at Microsoft.Azure.Search.DocumentsOperationsExtensions.<SearchAsync>d__151.MoveNext() --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 的 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 处从先前引发异常的位置结束堆栈跟踪.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter 1.GetResult() at Microsoft.Azure.Search.DocumentsOperationsExtensions.Search[T](IDocumentsOperations operations, String searchText, SearchParameters searchParameters, SearchRequestOptions searchRequestOptions) at MyApp.AzureSearch.AzureSearchService.PerformSearch[T](String searchText, SearchParameters searchParameters) in c:\Projects\MyAppServer\src\MyApp.AzureSearch\AzureSearchService.cs:line 359 at MyApp.AzureSearch.AzureSearchService.Search[T](String searchText, List1 searchFields, SearchMode searchMode, List 1 select, Nullable1 skip, Nullable 1 top, String filter, Boolean includeTotalResultCount, List1 orderBy) 在 c:\Projects\MyAppServer\src\MyApp.AzureSearch\AzureSearchService。 cs:MyApp.AzureSearch.AzureSearchService.SearchEmails 的第 262 行(Guid userId,字符串来源,字符串 searchText,可空1 skip, Nullable1 顶部,布尔值 includeTotalResultCount,布尔值 includeHtmlBody,布尔值 orderByProcessedAscending,字符串交互状态)在 c:\Projects\MyAppServer\src\MyApp.AzureSearch\AzureSearchService.cs:MyApp.Domain.MyAppMessages.Command.MyAppMessagesAllNoticedUpdater.Handle(VisitorSession userSession) 的第 167 行, NoticeAllMyAppMessages processCommand) 在 c:\Projects\MyAppServer\src\MyApp.Domain\MyAppMessages\Command\MyAppMessagesAllNoticedUpdater.cs:line 30

0 投票
2 回答
961 浏览

azure-cognitive-search - Azure 搜索重试策略

我们正在使用 azure 搜索,需要实施重试策略,并按照描述存储失败文档的 ID。

是否有关于如何在 Azure 搜索中实施 RetryPolicy 策略的任何文档/示例。

谢谢

0 投票
1 回答
134 浏览

azure - Azure 搜索分析器不匹配其他词时态

我对正在搜索的索引上的搜索字段使用以下定义

使用英语微软文本分析器,但它似乎不像我期望的那样匹配单词。当使用“sliced”之类的词搜索该字段时,Azure 搜索不会返回“slice”、“slices”之类的结果。同样,当搜索像“cherries”这样的复数词时,不会返回单数形式“cherry”,反之亦然。只有通过添加 's' 会返回复数形式的情况,但无论如何都会发生这种情况,“dog”会返回“dog”或“dogs”或“doggie”,因为“dog”只是每个单词的前缀。

是否需要将特殊参数传递给搜索调用以“激活”文本分析器?

0 投票
0 回答
74 浏览

azure - 使用 .Net SDK 将 ID 上传到文件上传到的同一 Azure Blob 索引

我正在将文档上传到我的 Azure Blob 存储,它运行良好,但我希望能够链接和 ID 到这个专门上传的文档。

下面是我上传文件的代码:

我已将 ClientID 字段添加到索引中(它位于底部),但不知道如何将其添加到该索引中。这对我来说仍然是新的,如果有人可以提供帮助,只需要一点指导:

在此处输入图像描述

提前致谢。

0 投票
1 回答
50 浏览

azure-cognitive-search - 我可以使用 .NET SDK 为 Azure 搜索索引创建 Azure Table 数据源吗?

我想配置数据源,包括 ia。包含集合的 json 字符串的字段映射。

0 投票
1 回答
398 浏览

azure - 如何使用 Azure Search .NET SDK 中的 json 文件中的自定义分析器创建索引?

我读过 Azure Search .NET SDK 使用 NewtonSoft.Json 将其模型转换为/从其底层 REST API 调用中的 json 转换,所以我在自己的应用程序中一直在做同样的事情。

我有一个简单的应用程序,它使用 .NET SDK 创建一个新索引。为此,我使用此处概述的格式https://docs.microsoft.com/en-us/rest/api/searchservice/create-index在 json 文件中定义我的索引,然后我将其转换为使用 Newtonsoft 的 Microsoft.Azure.Search.Models.Index 对象。

这在我配置自定义分析器之前工作正常,但现在我的配置中有自定义分析器,分析器、标记器和标记过滤器没有被解析为正确的类型。IE。我的自定义分析器被反序列化为 Microsoft.Azure.Search.Models.Analyzer,而不是 Microsoft.Azure.Search.Models.CustomAnalyzer,Tokenizer 和 TokenFilters 也是如此,它们被反序列化为基本类型。

有没有一种简单的方法可以从 json 文件在 .NET SDK 中创建这样的索引?

0 投票
1 回答
347 浏览

c# - Azure 搜索错误“违反继承安全规则”

我正在使用最新的 3.0.1 Azure 搜索库在 .NET 4.6.2 和 MVC v5.2.3 上运行。我的问题是搜索索引客户端使用以下代码引发错误。这不会发生在不同的 .NET 4.5 Web 应用程序上。

var SearchIndexClient = new SearchIndexClient(AZURE_SEARCH_SERVICE_NAME, AZURE_SEARCH_INDEX_NAME, new SearchCredentials(AZURE_SEARCH_API_KEY));

我发现这篇文章: https ://github.com/dotnet/corefx/issues/11100

这似乎是相关的,但修复的实施不起作用。我没有使用 .NET 核心,所以这是我对为什么它不适合我的假设。我已经为此工作了大约一周,最新的 Azure 搜索包没有修复错误,在这里寻求帮助。

错误的完整转储。

如果需要,总是很乐意提供更多细节。