doing some copying I came up with the following

                boolean fsv =
req.getParams().getBool(ResponseBuilder.FIELD_SORT_VALUES,false);
            if(fsv){
                NamedList sortVals = (NamedList) 
rsp.getValues().get("sort_values");
              Sort sort = searcher.weightSort(rb.getSortSpec().getSort());
              SortField[] sortFields = sort==null ? new
SortField[]{SortField.FIELD_SCORE} : sort.getSort();
                        for (SortField sortField: sortFields) {
                        String fieldname = sortField.getField();
                        ArrayList<Object> list = (ArrayList<Object>) 
sortVals.get(fieldname);
                        for(int index = 0; index < removedDocs.length; index ++)
                                list.remove(removedDocs[index]);
                        }
            }

this seems to have worked, need to do more testing but I don't
understand why it worked, what exactly is this doing?

On Fri, Feb 10, 2012 at 3:12 PM, Jamie Johnson <jej2...@gmail.com> wrote:
> I'd like to look at the pseudo fields you're talking about (don't
> really understand it right now), but need to get something working in
> the short term.  How do I go about removing these from the sort
> values?
>
> On Fri, Feb 10, 2012 at 3:06 PM, Yonik Seeley
> <yo...@lucidimagination.com> wrote:
>> On Fri, Feb 10, 2012 at 2:48 PM, Jamie Johnson <jej2...@gmail.com> wrote:
>>> So looking at query component it appears to sort the entire doc list
>>> at the end of process, my component is defined after this query so the
>>> doclist that I get should be sorted, right?  To me this should mean
>>> that I can remove items from this list and shift everything left as
>>> needed and it should work fine, but this isn't what appears to be
>>> happening.  For queries that are not distributed I don't see this
>>> issue, only for distributed queries.
>>
>> The document lists from the shards are merged by looking at the sort values.
>> Those are looked up by position in a different part of the response
>> (generated by fsv=true).
>> If you just mess with the doclists, those sort values will no longer
>> "line up" (doc #5 won't correspond to fsv slot #5).
>>
>> Short solution: if you remove a doc, remove that slot from all of the
>> sort values
>>
>> Better solution: We have pseudo-fields now... we should add sort
>> values directly to the documents so this type of parallel structure is
>> no longer needed.
>>
>> -Yonik
>> lucidimagination.com

Reply via email to