lucene-solr-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tamás Barta <bartata...@gmail.com>
Subject Re: Sorting question
Date Fri, 01 Apr 2016 16:51:59 GMT
Some of the lists are created by users and some are generated by
applications, it doesn't matter.

It would be fine to solve it in Solr because Solr does the work of
filtering and pagination. If sorting were done outside than I would have to
read every document from Solr to sort them. It is not an option, I have to
query onle one page.

I don't understand how to solve it using subqueries.
2016. ápr. 1. 18:42 ezt írta ("John Bickerstaff" <john@johnbickerstaff.com
>):

> Specifically, what drives the position in the list?  Is it arbitrary or is
> it driven by some piece of data?
>
> If data-driven - code could do the sorting based on that data...  separate
> from SOLR...
>
> Alternatively, if the data point exists in SOLR, a "sub-query" might be
> used to get the right sort order on the items returned by the "main"
> search...  Possibly without having to resort to the clunky-feeling listpos
> multivalued field...
>
> On Fri, Apr 1, 2016 at 10:32 AM, Tamás Barta <bartatamas@gmail.com> wrote:
>
> > For example I have to display sellable products which are in list X in
> the
> > correct order.
> >
> > If I add a "status" and "list" (multivalued) fields to every document
> > (products), then I can execute a query: status:sellable AND list:X,
> where X
> > is the ID of the list. The list field contains IDs of the list in which
> the
> > product is in.
> >
> > The problem is that I can't sort the result. A product has different
> index
> > for every list.
> >
> > Is it clear now?
> >
> > Earlier I added a "listpos" field with multivalue content, for example:
> >
> > 1:23
> > 2:4
> >
> > Which means that this product is in position 23 in list 1 and it is in
> > position 4 in list 2. After that I created a custom comparator which
> parses
> > field values to get index for the specified list and sorts by that index.
> >
> > But I didn't like that solution much. I wish there would be a better
> > solution. In SolrJ unfortunately I can't find an API to set custom
> > comparator like I did in Lucene. So I don't know how to solve this
> problem
> > in Solr.
> >
> > Thanks,
> > Tamás
> > 2016. ápr. 1. 17:25 ezt írta ("Alessandro Benedetti" <
> > abenedetti@apache.org
> > >):
> >
> > > I think this is a classic XY Problem , you are trying to solve X with
> Y ,
> > > and you are asking us about Y .
> > > Could you describe us what is your X problem ? What are you trying to
> do
> > > with this ordered lists ?
> > >
> > > If not I would add a field to the product called :
> > > list_position ( or a similar name) of type geo point (x,y) .
> > > X could be your list ID
> > > Y the position.
> > > Then you can play with spatial search, to get what you want.
> > >
> > > But again, let's try to solve X.
> > >
> > > Cheers
> > >
> >
>

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