Azure 搜索、映射、合并集合
Azure Search, mapping, merge collections
我有以下数据:
来自 SELECT c.addresses[0] address, [ c.name ] filenames FROM c
[
{
"address": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"filenames": [
"File 01.docx"
]
},
{
"address": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"filenames": [
"File 02.docx"
]
},
{
"address": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"filenames": [
"File 03.docx"
]
}, ....
address
字段是键,我有一个索引,其字段定义如下:
new Field()
{
Name = "filenames",
Type = DataType.Collection(DataType.String),
IsSearchable = true,
IsFilterable = true,
IsSortable = false,
IsFacetable = false
},
如您所见,我使用 [ c.name ] filenames
.
为文件名创建了一个数组
当我索引上面显示的数据时,索引包含文件名集合中的一行,该行是最后一个被索引的行。我可以将它添加到集合(合并)而不是替换吗?
我也在考虑使用查询来解决这个问题,但是 CosmosDB 不支持子选择(目前)并且 UDF 只能看到传递给它的数据。
从根本上说,您构建 Cosmos DB 集合的方式使这种情况不可行,因为 Azure 搜索不支持合并到集合中。
考虑将您的设计更改为 address
是集合中的一个键(即唯一的),并且所有 filenames
都收集在每个 address
的单个文档中:
{
"address": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"filenames": [ "File 01.docx", "File 02.docx", "File 03.docx", ... ]
}
此外,请在 Azure Search UserVoice site 上添加对合并集合的支持的建议,这将使您的方案更容易实现。
我有以下数据:
来自 SELECT c.addresses[0] address, [ c.name ] filenames FROM c
[
{
"address": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"filenames": [
"File 01.docx"
]
},
{
"address": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"filenames": [
"File 02.docx"
]
},
{
"address": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"filenames": [
"File 03.docx"
]
}, ....
address
字段是键,我有一个索引,其字段定义如下:
new Field()
{
Name = "filenames",
Type = DataType.Collection(DataType.String),
IsSearchable = true,
IsFilterable = true,
IsSortable = false,
IsFacetable = false
},
如您所见,我使用 [ c.name ] filenames
.
当我索引上面显示的数据时,索引包含文件名集合中的一行,该行是最后一个被索引的行。我可以将它添加到集合(合并)而不是替换吗?
我也在考虑使用查询来解决这个问题,但是 CosmosDB 不支持子选择(目前)并且 UDF 只能看到传递给它的数据。
从根本上说,您构建 Cosmos DB 集合的方式使这种情况不可行,因为 Azure 搜索不支持合并到集合中。
考虑将您的设计更改为 address
是集合中的一个键(即唯一的),并且所有 filenames
都收集在每个 address
的单个文档中:
{
"address": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"filenames": [ "File 01.docx", "File 02.docx", "File 03.docx", ... ]
}
此外,请在 Azure Search UserVoice site 上添加对合并集合的支持的建议,这将使您的方案更容易实现。