lucene-solr-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Erick Erickson <erickerick...@gmail.com>
Subject Re: Solr Issue
Date Fri, 05 Jan 2018 21:17:24 GMT
Ok, I missed that you had multiple records.

Pagination does not mesh well with streaming, they address quite different
use cases. You might have to re-think your indexing scheme to somehow make
the selection more amenable to standard Solr queries. Perhaps something
with the join query parser or indexing parent/child docs.

Best,
Erick

On Fri, Jan 5, 2018 at 11:57 AM, Lewin Joy (TMNA) <Lewin.Joy@toyota.com>
wrote:

> Hi Erick,
>
> I just didn't know how to handle the logic without using streaming query.
> What I want is to apply the logic without streaming expressions.
>
> I want to eliminate "item_name"s in the result set which has any of it's
> record's status='N'
>
> Example:
> Id:1, Item Name: A , status: Y
> Id:2, Item Name: A,  status: Y
> Id:3, Item Name: B,  status: Y
> Id:4, Item Name: B,  status: N
> Id:5, Item Name: B,  status: Y
>
> For this data, If I apply fq=status:Y -status:N, I would still get Ids:
> 1,2,3, and 5.
> I would like to eliminate B completely as it has one record with status:N
>
> Is this possible to do in Solr without using streaming expressions?
>
> -Lewin
>
> -----Original Message-----
> From: Erick Erickson [mailto:erickerickson@gmail.com]
> Sent: Tuesday, January 02, 2018 6:34 PM
> To: solr-user <solr-user@lucene.apache.org>
> Subject: Re: Solr Issue
>
> wait, what is it you want to do? Streaming is built expressly to handle
> very large result sets. It is _not_ really designed to deliver pages at a
> time. Why do you want to use it at all?
>
> Why not just use straight Solr, perhaps with cursorMark if you want to
> page deeply. The query is something like:
> q=status:‘N’ -status: ‘Y’
> or
> q=status:‘N’&fq:-status: ‘Y’
>
> Best,
> Erick
>
> On Tue, Jan 2, 2018 at 1:35 PM, Lewin Joy (TMNA) <Lewin.Joy@toyota.com>
> wrote:
> > ** PROTECTED 関係者外秘
> > Hi,
> >
> > I am using Solr 6.1 and am facing an issue with a complex scenario.
> > Could you help figure out how this can be achieved in Solr?
> >
> > We have items:  A, B, C . There will be multiple record entries for each
> items.
> > For our understanding, let’s say the fields for these records are:
> primary_key,item_name,status.
> >
> > I need to retrieve all records with status= ‘N’ and filter out items
> which has any of it’s record matching status: ‘Y’
> >
> > For record set below, the query should only return me records 1 and 2.
> > Primary_key
> >
> > Item_Name
> >
> > status
> >
> > 1
> >
> > A
> >
> > N
> >
> > 2
> >
> > A
> >
> > N
> >
> > 3
> >
> > B
> >
> > N
> >
> > 4
> >
> > B
> >
> > Y
> >
> > 5
> >
> > B
> >
> > N
> >
> > 6
> >
> > C
> >
> > Y
> >
> > 7
> >
> > C
> >
> > N
> >
> >
> >
> > Currently, I am using Streaming Query expressions to do complement()
> operation.
> > But the number of records with status= ‘Y’ is too huge and causes
> performance Problems.
> > And secondly, streaming query exports with Joins and complements can’t
> be used properly for bringing out paginated outputs.
> >
> > Is there anyway, we can group the results and do a query on the group to
> filter out such records?
> > Or any other approach which could give my results paginated?
> >
> > Thanks,
> > Lewin
>

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