Добавить и обновить данные в Solr-4.3.0, используя модуль узла solr-client

Позвольте мне привести пример, чтобы объяснить сценарий. Предположим, у меня есть данные, проиндексированные в Solr как:

{
 "id" : "872919092",
 "filename" : "science_book",
 "path" : "/local/abc/"
}

Теперь я хочу изменить данные, уже проиндексированные в Solr с id : 872919092, Мне нужно изменить filename : science_book с filename : history_book и добавить новый атрибут topic : mughal к тому же индексируется хранение данных path без изменений. Я не хочу передавать path опять же, поскольку в этом нет изменений, и он уже привязан к Solr. Согласно документации Solr это возможно. Как мне это сделать, используя метод обновления nodejs solr-client? Я хочу достичь нижеприведенной сцены:

  1. Если атрибут не существует в индексированных данных Solr с определенным идентификатором, добавьте его к уже проиндексированным данным, оставив ранее проиндексированные данные без изменений.
  2. Если атрибут уже существует в индексированных данных Solr с определенным идентификатором, измените значение ранее проиндексированного атрибута, оставив остальные индексированные данные без изменений.

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

Примечание: я использую Solr-4.3.0 и модуль узла solr-client для добавления данных в Solr.

1 ответ

Решение

Вам нужно будет добавить set или add в поле и удалить остальные поля. Вам нужен идентификатор и поля.

var doc = {
   "id" : "872919092",
   filename : {"set" : "history_book"},
   topic : {"add" : "mughal"}
}

client.add(doc)

Также обратите внимание, что вы можете увеличивать или уменьшать int, используя inc или dec

Другие вопросы по тегам