我们以此文件为例:
{
"id":1
"planet":"earth-616"
"data":[
["wolverine","mutant"],
["Storm","mutant"],
["Mark Zuckerberg","human"]]
}
我创建了一个搜索索引来索引名称和类型,例如,如果搜索名称:wolverine或者type:mutant我会得到包含它的文档。但根据我的要求我不想要整个文档,我只想要["wolverine","mutant"]
我创建了一个输出为:
{
"id":1,
"key":"earth-616",
"value":["earth-616","wolverine","mutant"]
}
然后我发现我只能用键查询。 (是否可以在视图上创建搜索索引?,在文档中找不到任何内容) 或者我应该像上面这样创建视图:
{
"id":1,
"key":"wolverine",
"value":["earth-616","wolverine","mutant"]
}
和
{
"id":,
"key":"mutant"
"value":["earth-616","wolverine","mutant"]
}
这样我可以用我想要的键查询,但我似乎无法部分匹配键(我错过了什么?)
答案 0 :(得分:3)
如果您需要输出完全如上所述,那么我相信您必须使用视图,并且为了支持通配符搜索,我相信您必须索引键的每个子字符串。
一种替代方法是使用Cloudant Query,但诚然,您无法获得所需的确切输出。如果您发出如下查询:
{
"selector": {
"_id": {
"$gt": 0
},
"data": {
"$elemMatch": {
"$elemMatch": {
"$regex": "(?i)zuck"
}
}
}
},
"fields": [
"data"
]
}
结果将是整个数据阵列:
{
"data": [
["wolverine", "mutant"],
["Storm", "mutant"],
["Mark Zuckerberg", "human"]
]
}