【问题标题】:Multiple search filtering is not working in cloudant, why?多重搜索过滤在 cloudant 中不起作用,为什么?
【发布时间】:2014-11-25 06:06:35
【问题描述】:

在这里我引用了我的代码进行多重搜索过滤。我找不到其中的错误。请提供正确的代码以使其正常运行。

员工文件:

{ "_id": "527c8d9327c6f27f17df0d2e17000530",

“_rev”:“24-276a8dc913559901897fd601d2f9654f”,

"proj_role": "团队成员",

"work_total_experience": "3",

“个人”:{ “语言_已知”:[ "英语","泰卢固语" ]},

“技能”:[

{

  "skill_set": "Webservices Framework",
  "skill_exp": 1,
  "skill_certified": "yes",
  "skill_rating": 3,
},
{
 "skill_set": "Microsoft",
  "skill_exp": 1,
  "skill_certified": "yes",
  "skill_rating": 3,
}

]
"framework_competency": "Nasscom", “类型”:“员工文档” }

设计文档:

{ "_id": "_design/sample",

"_rev": "86-1250f792e6e84f6f33447a00cf64d61d",

“视图”:{},

“语言”:“javascript”,

“索引”:{

"search": {

  "index": "function(doc){\n index(\"default\", doc._id);if(doc.type=='employee-docs'){\nif (doc.proj_role){index(\"project_role\", doc.proj_role);}if(doc.work_total_experience){\nindex(\"work_experience\", doc.work_total_experience);}\nif(doc.personal.languages_known){for(c in doc.personal.languages_known){ \n index(\"languages_known\",doc.personal.languages_known[c]);}} if(doc.skills){for (var i=0;i<doc.skills.length;i++){\nindex('skill_set',doc.skills[i].skill_set);}}}}"

}

} }

使用以下 URL 运行:https://ideyeah4.cloudant.com/opteamize_new/_design/sample/_search/search?q=project_role:TeamMember%20AND%20work_experience:%223%22%20AND%20languages_known:Telugu%20AND%20skill_set:Microsoft&include_docs=true

【问题讨论】:

    标签: cloudant


    【解决方案1】:

    一种简单的调试方法是查询索引中的前 100 个结果:

    https://ideyeah4.cloudant.com/opteamize_new/_design/sample/_search/search?q=*:*&limit=100
    

    这至少会告诉您索引中是否有任何文档。

    您当前的查询(没有 URL 编码)如下所示:

    project_role:TeamMember AND work_experience:"3" AND languages_known:Telugu AND skill_set:Microsoft
    

    我建议其中一些搜索值需要引号 - 当您搜索字符串值时总是如此。接下来,您可以尝试:

    project_role:"TeamMember"
    

    看看你是否得到任何结果并从那里改进。

    如果您存储这些值并为它们编制索引(这样您就可以准确地看到索引的内容),调试这也可能会更容易。为此,请向每个索引调用 {“store”: true } 添加一个对象。例如,

    index("languages_known", doc.personal.languages_known[c], { "store": true });
    

    现在,当您查询索引时,它将返回与每个匹配项一起存储的字段列表。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-17
      • 2017-10-09
      • 1970-01-01
      • 2015-10-04
      • 2015-03-12
      • 1970-01-01
      • 2018-08-23
      • 2018-11-28
      相关资源
      最近更新 更多