Hi All,
Today we are going
to see how we are going to customize the Search parameter in solr. Almost all
of our Projects will be having the Requirement of Customizing this parameter. Please
follow the Below Instructions so you can change it easily.
package
com.mycommercesearch.solr;
import
org.apache.solr.common.params.SolrParams;
import
org.apache.solr.common.util.NamedList;
import
org.apache.solr.handler.component.SearchHandler;
import
org.apache.solr.request.SolrQueryRequest;
import
org.apache.solr.response.SolrQueryResponse;
public class SearchEndecaHanlder extends SearchHandler {
public static String SEARCH="search";
public static String QUERY_PARAM="q";
public void handleRequestBody(SolrQueryRequest
req, SolrQueryResponse rsp) throws Exception{
String
queryParam=req.getParams().get(SEARCH);
SolrParams
paramSolrParams = req.getParams();
NamedList<Object>
nmList = new
NamedList<Object>();
nmList=paramSolrParams.toNamedList();
nmList.remove(SEARCH);
nmList.add(QUERY_PARAM, queryParam);
paramSolrParams=SolrParams.toSolrParams(nmList);
req.setParams(paramSolrParams);
super.handleRequestBody(req, rsp);
}
}
In this Scenario I have used "search" instead of "q" and it worked
out. Create a Jar File from the above class and paste it in <SOLR_ISTALED_DIR>solr-6.6.0\server\solr-webapp\webapp\WEB-INF\lib\
Registering the Custom Handler in Solr
Navigate to Solrconfig.xml and add the below entry.
<requestHandler name="/mysearch"
class="com.mycommercesearch.solr.SearchEndecaHanlder">
<lst
name="defaults">
<str
name="echoParams">explicit</str>
<int
name="rows">10</int>
<!-- <str
name="df">text</str> -->
</lst>
</requestHandler>
Once if you restart and access with the Below Url and get
the Results .
Happy Searching !!!!
No comments:
Write comments