我有一个Cloudant数据库,其在“站点”和“设备”字段上进行了索引搜索。 我在“网站”上进行的所有搜索都可以正常工作。 但是,当我在“设备”上搜索时,当我搜索确切的字词时,它不会返回任何结果。 仅当我用通配符*或?替换一个字符时,它才会返回正确的结果-参见下文。 我做错了什么?我以为“分析器”可能会删除前导零,但是即使在前面添加字母也会得到相同的结果。对于“站点”,一切都很好... 任何帮助表示赞赏。
请求:
{
"q" : "device:10000002",
"include_docs" : false,
"limit" : 10
}
返回: { “ total_rows”:0, “ bookmark”:“ g2o”, “行”:[] }
但要求(请注意*)
{
"q" : "device:1000*002",
"include_docs" : false,
"limit" : 10
}
返回1个正确的结果:
{
"total_rows": 1,
"bookmark": "g2wAAAABaANkACZkYmNvcmVAZGIyLmJtLWNjLWV1LWdiLTAyLmNsb3VkYW50Lm5ldGwAAAACYlAAAABiX____2poAkY_8AAAAAAAAGEAag",
"rows": [
{
"id": "53d39813e96c816c1311ca48c6ac9997",
"order": [
1,
0
],
"fields": {
"device": "10000002",
"site": "FR000001"
}
}
]
}
我的数据库是一堆这样的文件:
{
"_id": "07e04b8e9e003e708aa1f6eb87522c7f",
"_rev": "6-de665185458e44a7c50df399b807737f",
"site": "FR000003",
"device": "10000005",
"endDate": "00000000000000",
"endNote": "Falseturefalse"
}
我的索引是:
{
"_id": "_design/alarmSearch",
"_rev": "27-6e70a9b21a633f334f6a8251451b2559",
"views": {},
"language": "javascript",
"indexes": {
"IndexBySite": {
"analyzer": "standard",
"index": "function (doc) {\n index(\"device\", doc.device, {\"store\": true});\n index(\"site\", doc.site, {\"store\": true});\n}"
}
}
}