1. please explain how exactly "boost the value of a field in the 2nd based on the results of the 1st.". Please provide sample queries, docs and results. 2. introducing such chaining concern aka "* ResponseAware*" seems absolutely doubtful for me. 3. are you sure you are aware of tricks like http://wiki.apache.org/solr/SolrRelevancyFAQ#How_do_I_give_a_negative_.28or_very_low.29_boost_to_documents_that_match_a_query.3F and http://wiki.apache.org/solr/DisMaxQParserPlugin#bq_.28Boost_Query.29 and http://wiki.apache.org/solr/QueryElevationComponent
On Thu, Sep 13, 2012 at 11:09 PM, Karthick Duraisamy Soundararaj < karthick.soundara...@gmail.com> wrote: > Clarification: > " Once the parser is response aware, its easy for the components to grab > the response and use them. " In the context of function queries, by > components, I mean various Functions that has been extended from > ValueSource. > > On Thu, Sep 13, 2012 at 3:02 PM, Karthick Duraisamy Soundararaj < > karthick.soundara...@gmail.com> wrote: > >> Hello all, >> I am making multiple queries in a single url and trying >> to boost the value of a field in the 2nd based on the results of the >> 1st. To achieve this, my function query should be able to have access to >> the response of the first query. However, QParser and QParserPlugin only >> accepts req parameter and does not have any idea about the response. >> >> In a nutshell, all I am trying to do is that, during a serial execution >> of chain of queries represented by a single url( >> https://issues.apache.org/jira/browse/SOLR-1093), I am trying to >> influence the results of the second query with the results of the first >> query. To make the function queries ResponseAware, there are two options: >> >> *Option 1: Make all the QueryParsers ResponseAware* >> For this the following changes seem to be inevitable >> 1. Change/overload the createParser definition of QParserPlugin >> to include SolrQueryResponse >> createParser(string qstr, SolrParams >> localParams, SolrParams params, SolrQueryResponse rsp) >> -> createParser(string qstr, SolrParams localParams, SolrParams params, >> SolrQueryRequest req, SolrQueryResponse rsp) >> 2. Make similar changes to the getParser function in QPareser >> >> >> *Option 2: Make FunctionQueryParser alone ResponseAware* >> For this, following changes need to be made >> 1. Overload the FunctionQueryParserPlugin's create method with the >> following signature >> createParser(string qstr, SolrParams localParams, >> SolrParams params, SolrQueryRequest req, SolrQueryResponse rsp) >> 2. Overload the getParser methong in QParser to permit the extra >> SolrResponse parameter and invoke this call wherever necessary. >> >> >> Once the parser is response aware, its easy for the components to grab >> the response and use them. >> >> This change to interface would mandate changes across the various >> components of SOLR that use all the different kind of parsers but I think >> this would be a useful feature as it has been requested by different people >> at various times. I would appreciate any kind of >> suggestions/feedback. Also, I would be more than happy to discuss if there >> are anyother way of doing the same. >> >> > > > > > -- Sincerely yours Mikhail Khludnev Tech Lead Grid Dynamics <http://www.griddynamics.com> <mkhlud...@griddynamics.com>