我有以下数据:
来自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
为文件名创建了一个数组。
当我索引上面显示的数据时,索引在文件名集合中包含一行,该行是已编入索引的最后一行。我可以将它添加到集合(合并)而不是替换吗?
我也在考虑用Query来解决这个问题,但是CosmosDB不支持subselect(还),而UDF只能看到传入它的数据。
答案 0 :(得分:1)
从根本上说,构建Cosmos DB集合的方式使得此方案无法工作,因为Azure搜索不支持合并到集合中。
考虑更改您的设计,以便address
是集合中的关键字(即唯一),并且filenames
每个address
收集所有 {
"address": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"filenames": [ "File 01.docx", "File 02.docx", "File 03.docx", ... ]
}
:
a:focus, button:focus {outline: 1px solid white; }
另外,请在Azure Search UserVoice site上添加一个建议,以添加对合并集合的支持,这将使您的场景更容易实现。