Как удалить индексированные данные 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 из вашей среды.

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