Добавить и обновить данные в 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? Я хочу достичь нижеприведенной сцены:
- Если атрибут не существует в индексированных данных Solr с определенным идентификатором, добавьте его к уже проиндексированным данным, оставив ранее проиндексированные данные без изменений.
- Если атрибут уже существует в индексированных данных 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