Как получить оригинальный документ из индекса - PullRequest
0 голосов
/ 06 октября 2019

Я хочу проиндексировать все поля из набора документов, а затем извлечь документы, когда одно из полей соответствует запросу.

Вот пример документов:

{
    "_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 голосов
/ 07 октября 2019

В соответствии с параметрами поиска, используемыми здесь: https://github.com/rnewson/couchdb-lucene#search-parameters

Вы можете просто добавить к вашему запросу следующий параметр: ?include_docs=true

...