Hi, Ahmet, Jack, Thanks for the pointers. My requirement is, I would not be having the facets or sort fields or its order as static. For example suppose for a particular scenario I need to show only 2 facets and sort on only one field. For another scenario I may have to do facet.field for a different set of fields and sort on again another set of fields. Consider there are some sort of user preferences for each query.
So I think I may not be able to store my parameters like facet fields, sort fields etc preconfigured in solrconfig.xml. Please correct me if I am wrong. Based on Ahmet's reply I created a CustomSearchComponent with help from the net. I created a dummy RH and added this as the searchComponent in SolrConfig.xml:- <requestHandler name="/myexample" class="solr.SearchHandler"> <arr name="components"> <str>exampleComponent</str> </arr> </requestHandler> <searchComponent name="exampleComponent" class="org.ExampleSearchComponent"> </searchComponent> ..invoked it using:- http://localhost:8984/solr/myexample?q=*:* The o/p gave me that one record will ALL FIELDS fully in xml format. *It did not give only the "id" field which was what I was trying as a test!* my code for the custom Search Component shared below please:- Before that I have these queries:- 1. In my code,Instead of hitting the server AGAIN using SolrJ to enforce my params (just "fl" newly added) , is there any way the query can be executed with my additional fl param. 2. Just adding the input additional params is what I want to achieve. I dont want to do anything on the response. Currently I am doing it:- --> builder.rsp.add( "example", doc.getFields()); Note:- I removed this line and again when I ran this query NO OUTPUT came. So suppose I used it along with any of my existing RH by adding in searchcomponent, I want it to only affect the input querying by adding additional params and should not influence the rendering of the o/p in any way. How do I add this to one of my existing Request Handlers only to influence the input for querying and NOT o/p format in any way. 3. Why is all fields being rendered for the one doc I selected to come back in my "example" variable, when I am actually restricting the fields to only &fl=id Any help is greatly appreciated. My console shows the following ie ... looks like the filtering happens but what is /select doing here when I am calling /myexample:- 154956 [qtp1856056345-18] INFO org.apache.solr.core.SolrCore û [collection1] w ebapp=/solr path=*/select* params=*{q=*:*&fl=id&wt=xml&version=2.2}* hits=4 status=0 QTime=16 [stored,indexed,tokenized,omitNorms,indexOptions=DOCS_ONLY,numericType=INT,numer icPrecisionStep=16<id:205546699>, org.apache.lucene.document.LazyDocument$LazyFi eld@38585de9, org.apache.lucene.document.LazyDocument$LazyField@1b3edb96, org.ap ache.lucene.document.LazyDocument$LazyField@9692beb, org.apache.lucene.document. LazyDocument$LazyField@683f4dad, org.apache.lucene.document.LazyDocument$LazyFie ld@12f2e256, org.apache.lucene.document.LazyDocument$LazyField@7ffd69f5] 155080 [qtp1856056345-21] INFO org.apache.solr.core.SolrCore û [collection1] w ebapp=/solr path=*/myexample* params={*q=*:**} status=0 QTime=299 rough java class:- public class ExampleSearchComponent extends SearchComponent { @Override public void prepare(ResponseBuilder builder) throws IOException { } @Override public void process(ResponseBuilder builder) throws IOException { SolrParams params = builder.req.getParams(); String q = params.get(CommonParams.Q); ModifiableSolrParams params1 = new ModifiableSolrParams(params); params1.add("fl", "id"); System.out.println("q is "+q); QueryResponse response=null; HttpSolrServer server = new HttpSolrServer( " http://localhost:8984/solr/collection1" ); server.setParser(new XMLResponseParser()); try{ response = server.query( params1 ); }catch(Exception e){} SolrDocumentList results = new SolrDocumentList(); SolrIndexSearcher searcher = builder.req.getSearcher(); Document doc=searcher.doc(0); System.out.println(doc.getFields()); builder.rsp.add( "example", doc.getFields()); } @Override public String getDescription() { return "ExampleSearchComponent"; } @Override public String getSource() { return ""; } //@Override public String getSourceId() { return ""; } @Override public String getVersion() { return "1.0"; } } Thanks and Rgds, Mark. On Sat, Jan 9, 2016 at 12:38 PM, Jack Krupansky <jack.krupan...@gmail.com> wrote: > Sure, you CAN do this, but why would you want to? I mean, what exactly is > the motivation here? If you truly have custom code to execute, fine, but if > all you are trying to do is set parameters, a custom request handler is > hitting a tack with a sledge hammer. For example, why isn't setting > defaults in solrconfig sufficient for your needs? At least then you can > change parameters with a simple text edit rather than require a Java build > and jar deploy. > > Can you share what some of the requirements are for your custom request > handler, including the motivation? I'd hate to see you go off and invest > significant effort in a custom request handler when simpler techniques may > suffice. > > -- Jack Krupansky > > On Sat, Jan 9, 2016 at 12:08 PM, Ahmet Arslan <iori...@yahoo.com.invalid> > wrote: > > > Hi Mark, > > > > Yes this is possible. Better, you can use a custom SearchComponent for > > this task too. > > You retrieve solr parameters, wrap it into ModifiableSolrParams. Add > extra > > parameters etc, then pass it to underlying search components. > > > > Ahmet > > > > > > On Saturday, January 9, 2016 3:59 PM, Mark Robinson < > > mark123lea...@gmail.com> wrote: > > Hi, > > When I initially fire a query against my Solr instance using SOLRJ I pass > > only, say q=*:*&fq=(myfield:vaue1). > > > > I have written a custom RequestHandler, which is what I call in my SolrJ > > query. > > Inside this custom request handler can I add more query params like say > the > > facets etc.. so that ultimately facets are also received back in my > results > > which were initially not specified when I invoked the Solr url using > SolrJ. > > > > In short, instead of constructing the query dynamically initially in > SolrJ > > I want to add the extra query params, adding a jar in Solr (a java code > > that will check certain conditions and dynamically add the query params > > after the initial SolrJ query is done). That is why I thought of a custom > > RH which would help we write a java class and deploy in Solr. > > > > Is this possible. Could some one get back please. > > > > Thanks! > > Mark. > > >