lucene-solr-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Luis Festas Matos <lufe...@gmail.com>
Subject Re: Delete in Solr based on foreign key (like SQL delete from … where id in (select id from…)
Date Fri, 10 Oct 2014 08:01:57 GMT
Hi matthew,

I'm more than glad getting the ids and deleting them in a separate query,
if need be. But how do I do it? It's dozens of thousands of ids that I have
to delete. What's the strategy to delete them?

On Fri, Oct 10, 2014 at 4:16 AM, Matthew Nigl <matthew.nigl@gmail.com>
wrote:

> 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 <lufebbp@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
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message