lucene-solr-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ahmet Arslan <iori...@yahoo.com>
Subject Re: use query to set filter on fields
Date Tue, 04 Jan 2011 12:07:54 GMT
> I'm not sure, whether I made myself very clear. I don't
> think that it is difficult to evaluate the query. Here's a
> (very inefficient) algorithm in pseudocode that would do,
> what I have in mind:
> 
> query = ...
> 
> foreach (term in query)
>   foreach (field in SOLR.config.fields)
>     result = SOLR.query(field:term)
>     if result.size > 0
>       filters.addFilter(field=term)
>       break
>     end
>   end
> end
> 
> return SOLR.filter(filters)

Okey if you have already something, I think simplest place to put this is a custom search
handler. http://wiki.apache.org/solr/SolrPlugins
Other option can be QParserPlugin.


public final class CustomSearchHandler extends SearchHandler {

@Override
  public void handleRequestBody(SolrQueryRequest req, SolrQueryResponse rsp) throws IOException,
ParseException, InstantiationException, IllegalAccessException {

   
  ModifiableSolrParams solrParams = new   ModifiableSolrParams(req.getParams());
  String query = req.getParams().get(CommonParams.Q, "*:*");
    
   foreach (term in query)
   foreach (field in SOLR.config.fields)  => http://wiki.apache.org/solr/LukeRequestHandler
     result = SOLR.query(field:term)
     if result.size > 0
       filters.addFilter(field=term)  => solrParams.add(CommonParams.FQ, "field:term");
       break
     end
   end
 end
 
 req.setParams(solrParams);
 super.handleRequestBody(req, rsp);
} 


      

Mime
View raw message