Hi,

I'm using Solr server to develop a search service, and I encounter a problem 
when trying to input a longer query string:

Here is the code:


StringBuffer stringBuffer = new StringBuffer();

... ...
        try{
            //search Pubmed server( a NCBI server ), it returns a list of IDs.
            EFetchPubmedServiceStub service = new EFetchPubmedServiceStub();
            EFetchPubmedServiceStub.EFetchRequest req = new 
EFetchPubmedServiceStub.EFetchRequest();
            req.setWebEnv( WebEnv );
            req.setQuery_key( query_key );
            req.setRetstart( "1110" );

            // return 295 IDs
            req.setRetmax( "295" );
            EFetchPubmedServiceStub.EFetchResult res = service.run_eFetch( req 
);

            //connect returned IDs with " OR " and query my local Solr server
            for( int i = 0; i < 
res.getPubmedArticleSet().getPubmedArticleSetChoice().length; i++ ){
                EFetchPubmedServiceStub.PubmedArticleType art = 
res.getPubmedArticleSet().getPubmedArticleSetChoice()
                        [ i ].getPubmedArticle();

                if( i > 0 ){
                    stringBuffer.append( " OR " );
                }
                stringBuffer.append( "( pmid:" + 
art.getMedlineCitation().getPMID().getString() + " )" );
            }

            HttpSolrServer solrServer = new HttpSolrServer( 
"http://127.0.0.1:8087/solr430/medline"; );

            String q = stringBuffer.toString();

            //when input query has more 300 IDs, query will throw 
org.apache.solr.client.solrj.SolrServerException: Server at 
http://127.0.0.1:8087/solr430/medline returned non ok status:400, message:Bad 
Request
            QueryResponse solrRes = solrServer.query( new SolrQuery( q ) );
            long found = solrRes.getResults().getNumFound();
            System.out.println( found );
        }
        catch( Exception e ){
            e.printStackTrace();
        }
... ...

Do you think it's possible to change the query string length limit so that Solr 
can accept more IDs?

Thanks.

-Gary

Reply via email to