I was going to say that the below should do what you are asking:

<delete><query>{!join from=docid_s
to=foreign_key_docid_s}(message_state_ts:[* TO 2014-10-05T00:00:00Z} AND
message_state_ts:{2014-10-01T00:00:00Z TO *])</query></delete>

But I get the same response as in
https://issues.apache.org/jira/browse/SOLR-6357

I can't think of any other queries at the moment. You might consider using
the above query (which should work as a normal select query) to get the
IDs, then delete them in a separate query.


On 10 October 2014 07:31, Luis Festas Matos <lufe...@gmail.com> wrote:

> Given the following Solr data:
>
> <doc>
>     <str name="index_id">1008rs1cz0icl2pk</str>
>     <date name="message_state_ts">2014-10-07T14:18:29.784Z</date>
>     <str name="docid_s">h60fmtybz0i7sx87</str>
>     <long name="_version_">1481314421768716288</long></doc><doc>
>     <str name="index_id">u42xyz1cz0i7sx87</str>
>     <str name="foreign_key_docid_s">h60fmtybz0i7sx87</str>
>     <long name="_version_">1481314421768716288</long></doc><doc>
>    <str name="index_id">u42xyz1cz0i7sx87</str>
>    <str name="foreign_key_docid_s">h60fmtybz0i7sx87</str>
>    <long name="_version_">1481314421448900608</long></doc>
>
> I would like to know how to *DELETE documents* above on the Solr console or
> using a script that achieves the same result as issuing the following
> statement in SQL (assuming all of these columns existed in a table called x
> ):
>
> DELETE FROM x WHERE foreign_key_docid_s in (select docid_s from x
> where message_state_ts < '2014-10-05' and message_state_ts >
> '2014-10-01')
>
> Basically, delete all derived documents whose foreign key is the same as
> the primary key where the primary key is selected between 2 dates.
>
> Question originally posted on stackoverflow.com ->
>
> http://stackoverflow.com/questions/26248372/delete-in-solr-based-on-foreign-key-like-sql-delete-from-where-id-in-selec
>

Reply via email to