Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 全文索引在cloudant中不起作用_Json_Lucene_Couchdb_Cloudant - Fatal编程技术网

Json 全文索引在cloudant中不起作用

Json 全文索引在cloudant中不起作用,json,lucene,couchdb,cloudant,Json,Lucene,Couchdb,Cloudant,全文索引搜索功能在cloudant中不起作用 文件1: { "_id": "527c8d9327c6f27f17df0d2e17000530", "_rev": "9-4a61c6dac8d03a7d55696c3dde6a4f50", "employee_ID": "SCI130202", "proj_role": "Team Member", "work_total_experience": "4", } 文件2: { "_id": "527c8d9327c6f2

全文索引搜索功能在cloudant中不起作用

文件1:

{
  "_id": "527c8d9327c6f27f17df0d2e17000530",
  "_rev": "9-4a61c6dac8d03a7d55696c3dde6a4f50",
  "employee_ID": "SCI130202",
  "proj_role": "Team Member",
  "work_total_experience": "4",
}
文件2:

{

  "_id": "527c8d9327c6f27f17df0d2e17000531",
  "_rev": "9-4a61c6dac8d03a7d55696c3dd46a4f50",
  "employee_ID": "SCI130201",
  "proj_role": "developer",
  "work_total_experience": "2",
}
索引函数:

{ 
 "_id": "_design/search_emp",
 "_rev": "3-4562324d684a2f13d2a1f6f570736e7e",
 "views": {},
 "language": "javascript",
 "indexes": {
    "by_employee": {
      "analyzer": "standard",
      "index": "function(doc){index(doc.proj_role,{'field':'project_role'})index(doc.work_total_experience,{'field':'work_experience'})}"
    }}}
如果我传入URL,比如:
https://{username}.cloudant.com/databasename/\u design/search\u emp/\u search/by\u employee?q=project\u角色:开发者和工作经验:2


这只适用于一个条件,但我需要获得具有2年经验的确切输出开发人员详细信息。

因此这里有两个问题,一个是如何定义索引,另一个是如何查询索引

  • 您正在调用
    index(doc.proj_角色,{'field':'project_角色'})但我不确定这是正确的语法;我相信你想要:
    索引(“project\u role”,doc.proj\u role)

  • 两个条件之间的
    应该是
    q=project\u角色:开发者和工作经验:2

  • 希望能有所帮助。

    这对我很有用

    这是我的设计文件:

    {
        "doc": {
            "_id": "_design/search_emp",
            "_rev": "17-e7f119c21ca21cc6ac44c5a967cd5550",
            "indexes": {
                "by_employee": {
                    "analyzer": "standard",
                    "index": "function(doc) {\n    index('project_role', doc.proj_role, {});\n    index('work_experience', doc.work_total_experience, {});\n}"
                }
            },
            "language": "javascript",
            "views": {}
        },
        "id": "_design/search_emp",
        "key": "_design/search_emp",
        "value": {
            "rev": "17-e7f119c21ca21cc6ac44c5a967cd5550"
        }
    }
    
    网址:

    https://username.cloudant.com/databasename/_design/search_emp/_search/by_employee?include_docs=true&q=work_experience:%222%22%20AND%20project_role:developer
    
    注意:我必须在经验值周围加上双引号<代码>工作经验:“2”
    对我有效,但
    工作经验:2
    无效

    答复如下:

    {
        "bookmark": "g2wAAAABaANkABxkYmNvcmVAZGIyLm1lYWQuY2xvdWRhbnQubmV0bAAAAAJiQAAAAGJ_____amgCRj_bxezgAAAAYQBq",
        "rows": [
            {
                "doc": {
                    "_id": "90958a20a020a7483d3311a156fcf571",
                    "_rev": "1-795df1c239d3d029eaa6d8c45ef70a8c",
                    "employee_ID": "SCI130201",
                    "proj_role": "developer",
                    "work_total_experience": "2"
                },
                "fields": {},
                "id": "90958a20a020a7483d3311a156fcf571",
                "order": [
                    0.4339554011821747,
                    0
                ]
            }
        ],
        "total_rows": 1
    }
    

    您可以发布一个您试图搜索的数据库中的文档的示例吗?上面提到的两个示例json文档。但我的预期输出是具有2年经验的开发人员。我尝试了上述方法。我得到了结果,但无法得到准确的结果。条件不起作用,并且
    起作用。刚刚尝试了交互式示例:我可以在其中搜索,例如
    类:鸟类和饮食:食肉动物