> -Original Message-
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf
> Of Yonik Seeley
> Sent: Monday, 17 December 2007 4:44 PM
> To: solr-user@lucene.apache.org
> Subject: Re: retrieve lucene "doc id"
>
> On Dec 16, 2007 11:40 PM, Ben Incani
> <[EMAIL PROTECTED]> wrote:
> > how do I retrieve the lucene "doc id" in a query?
>
> Currently that's not doable... if it was though, it would be
> a slightly dangerous feature since internal ids are transient.
> Can you explain a little more about what you are trying to do?
>
> -Yonik
>
Hi Yonik,
I have converted to using the Solr search interface and I am trying to
retrieve documents from a list of search results (where previously I had
used the doc id directly from the lucene query results) and the solr id
I have got currently indexed is unfortunately configured not be unique!
I do realise that lucene internal ids are transient, but for a read-only
requests (that are not cached) should be ok.
i have hacked org.apache.solr.request.XMLWriter.writeDoc to do a
writeInt("docId", docId).
code snippet
SolrServer server = new CommonsHttpSolrServer(solrURL);
Map params = new HashMap();
params.put("q", searchQuery);
params.put("rows", "20");
MapSolrParams solrParams = new MapSolrParams(params);
QueryResponse response = server.query(solrParams);
SolrDocumentList docs = response.getResults();
ArrayList hitsList = new ArrayList();
for (int i = 0; i < docs.getNumFound(); i++) {
HashMap resultMap = new HashMap();
SolrDocument doc = (SolrDocument)docs.get(i);
resultMap.put("id", doc.getFieldValue("docId"));
for(int j=0; j