如何从索引中获取原始文档

时间:2019-10-06 19:26:43

标签: lucene couchdb cloudant

我想索引一组文档中的每个字段,然后在其中一个字段与查询匹配时检索文档。

以下是文档示例:

{
    "_id": "1234567890",
    "lname": "last",
    "name": "name",
    "mpc": {
        "id": "000000",
        "name": "name"
    },
    "type": "agent",
    …
},
{
    "_id": "1234567891",
    "lname": "last",
    "name": "name",
    "mpc": {
        "id": "000001",
        "name": "name"
    },
    "type": "agent",
    …
}

从这里https://github.com/rnewson/couchdb-lucene#example-index-functions的代码开始,我理解为什么会得到结果,但是我没有找到如何检索原始文档,而不是汇总。

{
  "_id": "_design/search",
  "fulltext": {
    "all": {
      "index": "function(doc) { var ret = new Document(); function idx(obj) { for (var key in obj) { switch (typeof obj[key]) { case 'object': idx(obj[key]); break; case 'function': break; default: ret.add(obj[key], {\"store\": \"yes\"}); break; } } }; idx(doc); return ret;}"
    }
  }
}

因此,当我尝试查询http://localhost:5985/local/database/_design/search/all?q=name时,我得到的所有数据都是扁平的,而不是原始文档的层次结构。

是否有任何内置方法可以获取我想要的东西?

1 个答案:

答案 0 :(得分:1)

根据此处可用的搜索参数:https://github.com/rnewson/couchdb-lucene#search-parameters

您只需在查询中添加以下参数:?include_docs=true