FAQ
Thank you both. The DocTransformer solution was very simple:

import java.io.IOException;

import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.params.SolrParams;
import org.apache.solr.request.SolrQueryRequest;
import org.apache.solr.response.transform.DocTransformer;
import org.apache.solr.response.transform.TransformerFactory;

public class PositionAugmenterFactory extends TransformerFactory{

     @Override
     public DocTransformer create(String field, SolrParams params,
             SolrQueryRequest req) {
         return new PositionAugmenter( field );
     }

     class PositionAugmenter extends DocTransformer {
         final String name;
         int position;

         public PositionAugmenter( String display )
         {
             this.name = display;
             this.position = 1;
         }
         @Override
         public String getName() {
             return name;
         }

         @Override
         public void transform(SolrDocument doc, int docid) throws
IOException {
             doc.setField( name, position++);
         }

     }
}

@Jack: fl=[docid] is similar to using the uniqueKey, but still hard to
compare visually (for me).

The fields are not returned in the same order as specified in the 'fl'
parameter. Can the order be overridden?

Thanks,
Peter



On Fri, Jan 3, 2014 at 6:58 PM, Jack Krupansky wrote:

Or just use the internal document ID: fl=*,[docid]

Granted, the docID may change if a segment merge occurs and earlier
documents have been deleted, but it may be sufficient for your purposes.

-- Jack Krupansky

-----Original Message----- From: Upayavira
Sent: Friday, January 03, 2014 5:58 PM
To: solr-user@lucene.apache.org
Subject: Re: how to include result ordinal in response

On Fri, Jan 3, 2014, at 10:00 PM, Peter Keegan wrote:

Is there a simple way to output the result number (ordinal) with each
returned document using the 'fl' parameter? This would be useful when
visually comparing the results from 2 queries.
I'm not aware of a simple way.

If you're competent in Java, this could be a neat new DocTransformer
component. You'd say:

fl=*,[position]

and you'd get a new field in your search results.

Cruder ways would be to use XSLT to add it to an XML output, or a
velocity template, but the DocTransformer approach would create
something that could be of ongoing use.

Upayavira

Search Discussions

Discussion Posts

Previous

Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 4 of 4 | next ›
Discussion Overview
groupsolr-user @
categorieslucene
postedJan 3, '14 at 10:00p
activeJan 4, '14 at 10:44p
posts4
users3
websitelucene.apache.org...

People

Translate

site design / logo © 2021 Grokbase