问题标签 [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.
azure - Azure Search .net SDK-如何使用“FindFailedActionsToRetry”?
使用 Azure Search .net SDK,当您尝试索引文档时,您可能会遇到异常IndexBatchException
。
e.FindFailedActionsToRetry 应该如何用于创建一个新批次以重试失败操作的索引?
我创建了一个这样的函数:
但我认为这部分是错误的:
.net - 如何等待 Azure 搜索完成索引文档?用于集成测试目的
设想
我正在构建一套自动化集成测试。每个测试在查询和验证预期结果之前将数据推送到 Azure 搜索索引。
问题
索引在服务中异步发生,并且在索引调用成功返回后数据不会立即可用。
测试在大多数时候执行当然太快了。
我试过的
我尝试查询文档,直到找到:
但奇怪的是,后面的搜索查询通常不会找到任何东西:
使用任意暂停有效,但不能保证,我希望测试尽可能快地执行。
最后,上面示例中的代码延迟了两秒钟。索引在 Azure 搜索服务中异步发生,因此示例应用程序需要等待一小段时间以确保文档可用于搜索。像这样的延迟通常只在演示、测试和示例应用程序中是必需的。
没有不影响测试性能的解决方案吗?
.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”是要调用的方法,应该返回所有结果):
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__15
3.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__15
1.MoveNext() --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 的 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 处从先前引发异常的位置结束堆栈跟踪.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter1.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, List
1 searchFields, SearchMode searchMode, List1 select, Nullable
1 skip, Nullable1 top, String filter, Boolean includeTotalResultCount, List
1 orderBy) 在 c:\Projects\MyAppServer\src\MyApp.AzureSearch\AzureSearchService。 cs:MyApp.AzureSearch.AzureSearchService.SearchEmails 的第 262 行(Guid userId,字符串来源,字符串 searchText,可空1 skip, Nullable
1 顶部,布尔值 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
azure-cognitive-search - Azure 搜索重试策略
我们正在使用 azure 搜索,需要实施重试策略,并按照描述存储失败文档的 ID。
是否有关于如何在 Azure 搜索中实施 RetryPolicy 策略的任何文档/示例。
谢谢
azure - Azure 搜索分析器不匹配其他词时态
我对正在搜索的索引上的搜索字段使用以下定义
使用英语微软文本分析器,但它似乎不像我期望的那样匹配单词。当使用“sliced”之类的词搜索该字段时,Azure 搜索不会返回“slice”、“slices”之类的结果。同样,当搜索像“cherries”这样的复数词时,不会返回单数形式“cherry”,反之亦然。只有通过添加 's' 会返回复数形式的情况,但无论如何都会发生这种情况,“dog”会返回“dog”或“dogs”或“doggie”,因为“dog”只是每个单词的前缀。
是否需要将特殊参数传递给搜索调用以“激活”文本分析器?
azure-cognitive-search - 我可以使用 .NET SDK 为 Azure 搜索索引创建 Azure Table 数据源吗?
我想配置数据源,包括 ia。包含集合的 json 字符串的字段映射。
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 中创建这样的索引?
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 搜索包没有修复错误,在这里寻求帮助。
错误的完整转储。
如果需要,总是很乐意提供更多细节。