Как удалить индексированные данные SOLR по запросу поля даты и времени с помощью curl?
У меня есть поле даты и времени, как это.
<field name="rel_date" type="date" indexed="true" stored="true" default="NOW" multiValued="false"/>
Я пытаюсь удалить некоторые конкретные даты в поле rel_date по запросу curl.
curl http://$SOLR_IPADDR:$SOLR_PORT/solr/update/?commit=true -H "Content-Type: text/xml" -d "<delete><query>rel_date:\[2012-03-10\])</query></delete>"
Но его получение неверной строки даты в ответе SOLR.
Статус HTTP 400 - недопустимая строка даты:'[2012-03-10]'
Как я могу удалить определенные даты в записях SOLR с помощью запроса CURL?
2 ответа
Тебе тоже нужно время.
Из архива DateField:
Поле даты должно иметь форму 1995-12-31T23:59:59Z. Трейлинг "Z" обозначает время UTC и является обязательным (объяснение UTC см. Ниже). Допускаются дополнительные дробные секунды, если они не заканчиваются завершающим 0 (но любая точность, превышающая миллисекунды, будет игнорироваться). Все остальные части являются обязательными.
Смотрите также: http://lucidworks.lucidimagination.com/display/lweug/Solr+Date+Format
curl http://host:port/solr/core_name/update?commit=true -H "Тип содержимого: текст /xml" --data-binary '<delete><query>rel_date:[2019-03-25T00:00:01Z TO 2019-03-25T23:59:59Z]</query></delete>'
Я сделал это с помощью следующего комментария:
curl http: // $SOLR_IPADDR: $ SOLR_PORT / solr / update /? commit = true -H "Тип содержимого: текст / xml" -d "(rel_date:[2012-03-10T00:00:00Z ДО 2012-03) -10T00:00:00Z])"
Конечно, вы должны изменить $SOLR_IPADDR и $ SOLR_PORT из вашей среды.