I have a field in my database, "id", which is the unique key.  The id
is generated as an MD5 hash of some of the other data in the record,
and unfortunately the way I converted it to hex meant that sometimes I
get a negative value.  I'm having a real hard time figuring out the
right combination of quotes and escapes so I can actually query these
things using SolrJ.  On the Solr web interface, I can just do put in
id:"-3f66fdfb1ef5f8719f65a7403e93cc9d"
which results in a url like:
http://localhost:8080/solrChunk/nutch/select/?q=id:%22-3f66fdfb1ef5f8719f65a7403e93cc9d%22&version=2.2&start=0&rows=10&indent=on
but when I try that using SolrJ

        SolrQuery query = new SolrQuery();
        query.setQuery(key + ":" + value);
        query.setRows(NUM_AT_A_TIME);

            int start = 0;
            while (true)
            {
                query.setStart(start);
                QueryResponse resp = solrChunkServer.query(query);
                SolrDocumentList docs = resp.getResults();
                LOG.debug("got " + docs.getNumFound() + " documents
(or " + docs.size() + " if you prefer)");
                if (docs.size() == 0)
                    break;

                for (SolrDocument doc : docs)
                {
                    retCode.add(doc);
                }
                if (docs.size() < NUM_AT_A_TIME)
                    break;

                start += NUM_AT_A_TIME;
            }

I call that using key = "id" and value =
"-3f66fdfb1ef5f8719f65a7403e93cc9d" and I get an exception.  If I
change value to "\"-3f66fdfb1ef5f8719f65a7403e93cc9d\"", I get no
results.  If I change value to "\-3f66fdfb1ef5f8719f65a7403e93cc9d", I
get no results.  If I change value to
"\"\-3f66fdfb1ef5f8719f65a7403e93cc9d\"", I get no results.

If I had hair, I'd be tearing it out right now.

-- 
http://www.linkedin.com/in/paultomblin
http://careers.stackoverflow.com/ptomblin

Reply via email to