Solr: Как обновить только выбранное поле, используя curl или команду? - PullRequest
2 голосов
/ 14 февраля 2020

У меня есть документ Solr, как показано ниже

{
    "SKU":"1905/SHIRT DRESS-0",
    "DateCreated":["2019-08-18T15:21:04.090Z"],
    "DateModified":["2020-01-17T02:31:16.803Z"],
    "Name":"TIGRESS COLLECTION - SHIRT DRESS, SIZE 0 (6-8)",
    "Price":["249.00 AUD"],
    "PriceSale":["99.50 AUD"],
    "Size":["SIZE 0 (6-8)"],
    "StockLevel":["in stock"],
    "SubCategory":["KAFTAN"],
    "IsDeleted":[0],
    "ProductAddedOn":["2020-02-14T10:38:43.047Z"],
    "_version_":1658508251550973952
}

Я хочу обновить только 1 поле из этого документа.

Я хочу обновить IsDeleted = 1, где ProductAddedOn меньше чем сегодняшняя дата

Как это сделать?

Также я попытался обновить имя с помощью приведенной ниже команды

curl -X POST -H 'Content-Type: application/json' 'http://10.7.0.106:8983/solr/prashant1/update?_version_:1658508177093689344&versions=true&commit=true' --data-binary ' [{ "SKU" : "1905/SHIRT DRESS-0", "Name" : "update attempt with correct existing version" }]'

Но эта команда удаляет все остальные поля из документ, кроме имени и SKU.

Поэтому я хочу обновить только 1 поле из документа, а остальные поля должны остаться без изменений.

1 Ответ

2 голосов
/ 14 февраля 2020

Solr поддерживает простые обновления Atom c (также называемые частичными обновлениями) для отдельных документов с помощью модификаторов полей, таких как add и set.

Optimisti c контроль параллелизма - еще один метод атомарного обновления документов .

Модификаторы Solr поддерживает несколько модификаторов, которые атомарно обновляют значения документа.

set - установить или заменить определенное значение, или удалить значение, если в качестве нового значения указано значение NULL

Пример:

curl http://10.224.143.172:8983/solr/knowledge_combined/update?commit=true --data-binary $'[{"id" : "1", "site_name"  : {"set":"Test new change"} }]'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...