集合上的Azure搜索筛选器

集合上的Azure搜索筛选器,azure,azure-cognitive-search,Azure,Azure Cognitive Search,我们的索引如下所示(这来自查询资源管理器): 这表明File 1.doc存在于多个位置,但我们在azure blob storange中存储了一次,这就是为什么我们有一个键,xxx是blob存储键 我一直在阅读文档,但没有看到一个示例允许我们使用集合中的startswith或contains进行筛选 我试过了 var searchParameters = new SearchParameters() { Filter = @"paths/any(t: t gt '\\Server\Sha

我们的索引如下所示(这来自查询资源管理器):

这表明
File 1.doc
存在于多个位置,但我们在azure blob storange中存储了一次,这就是为什么我们有一个键,
xxx
是blob存储键

我一直在阅读文档,但没有看到一个示例允许我们使用集合中的startswith或contains进行筛选

我试过了

var searchParameters = new SearchParameters()
{
    Filter = @"paths/any(t: t gt '\\Server\Share')", 
};
我们需要能够搜索给定路径的文件内容

编辑

我们的
CosmosDb
数据库具有向用户表示的数据视图,该数据库具有指向blob的
链接,因此另一个选项是为
CosmosDb编制索引,并让索引器跟随指向blob的链接,文档不建议这样做。或者,我们最好编写自己的
索引器
,并将其作为
azure函数
托管


每个文档有一行和一个指向blob的指针,许多文档行可以指向同一个blob。

我用

var searchParameters = new SearchParameters()
{
    Filter = @"search.ismatch('""\\\\server\\share\\path""','paths','simple','all')",
};

如果需要的话,我会做更多的测试并更新这个答案

好吧,如果可行的话,OData语法将是
path/any(t:startswith(t,'\\Server\Share'))
.Hmm,看起来你不能在lambdas中使用任意函数进行搜索。你可以查看文档了解更多信息:是的,我试过:)我正在阅读文档:)。。。再次声明:)我认为它不受支持。如果要使用分部项进行筛选,使用search.ismatch是正确的选择。正则筛选表达式需要与查询词精确匹配。您可以从本文了解更多如何自定义如何处理索引或查询项:。
var searchParameters = new SearchParameters()
{
    Filter = @"search.ismatch('""\\\\server\\share\\path""','paths','simple','all')",
};