вставка и индексация в Couchdb одновременно или последовательно - PullRequest
0 голосов
/ 23 сентября 2019

Я новичок в couchdb и пытаюсь одновременно сохранить несколько документов, индексируя их.

В настоящее время я делаю следующее:

app.post("/api/result-store/v1/results/:searchID", (req, res) => {
  const dbName = "test_" + req.params.searchID;
  database.checkAndCreateDatabase(dbName).then(
    db => {
      const docs = req.body.objects;
      db.bulk({ docs }).then(
        body => {
          res.send({
            writes: body.reduce((total, currentValue) => {
              return total + (currentValue.ok ? 1 : 0);
            }, 0)
          });
        },
        err => {
          res.send(err);
        }
      );
    },
    err => {
      console.log(err);
    }
  );
});

Все, что я делаю выше, этосохранение, но без индексации.Теперь, если я сделаю запрос к базе данных как:

{{url}}/api/result-store/v1/results/jmeter_test_db_size_90_k?q=*:*&limit=200&counts=["qid_name", "datasource"]

, тогда начнется индексация.Но это слишком поздно, поскольку индексация требует времени, и клиент должен ждать и ждать, пока индексация не будет выполнена, чтобы получить результат.Я думаю начать индексирование данных, как только я вставлю документы, чтобы сохранять и индексировать одновременно или последовательно.Это вообще возможно?Любое понимание приветствуется

1 Ответ

1 голос
/ 24 сентября 2019

Поскольку вы используете nano, вы можете создать индекс, вызвав db.createIndex сразу после создания базы данных (создает индекс для полей базы данных, как указано в CouchDB doc ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...