> 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);
} 



Reply via email to