咨询:使用Cloudant Search时为何部分文档未被索引
问题原因
你的索引函数会尝试为所有文档的name和email字段建立索引,但当文档缺少name字段时(比如带provisional: true的那篇),调用index("name", doc.name)会触发错误,导致整个文档不会被加入索引,自然搜不到对应的email。
解决方案
修改索引函数,先检查字段是否存在再执行索引操作:
function(doc) { if (doc.name) { index("name", doc.name); } if (doc.email) { index("email", doc.email); } }
这样即使文档没有name字段,也能正常索引email字段,后续搜索q=email:bob@aol.com就能返回目标文档了。
注意:修改索引函数后,需确保Cloudant完成重新索引操作(通常会自动触发,若未生效可手动触发)。
内容的提问来源于stack exchange,提问作者Glynn Bird
相关产品推荐
相关产品推荐

