Re: how to run boost query for non-dismax query parser

2011-03-24 Thread Ahmet Arslan

 I need to code some boosting logic when some field equal to
 some value.   I
 was able to get it work if using dismax query parser. 
 However, since the
 solr query will need to handle prefix or fuzzy query,
 therefore, dismax
 query parser is not really my choice.  
 
 Therefore, i want to use standard query parser, but still
 have dismax's
 boosting query logic.  For example, this query return
 all the titles
 regardless what the value is, however, will boost the score
 of those which
 genres=5237:
 
 http://localhost:8983/solr/titles/select?indent=onstart=0rows=10fl=*%2Cscorewt=standardexplainOther=hl.fl=qt=standardq={!boost%20b=genres:5237^2.2}*%3A*debugQuery=on
 
 
 Here is the exception i get:
 HTTP ERROR: 400
 
 org.apache.lucene.queryParser.ParseException: Expected ','
 at position 6 in
 'genres:5237^2.2'

BoostingQParserPlugin takes a FunctionQuery. In your case it is lucene/solr 
query. If you want to boost by solr/lucene query, you can add that clause as 
optional clause. Thats all.

q=+*:* genres:5237^2.2q.op=OR  will do the trick. Just make sure that you are 
using OR as a default operator.





Re: how to run boost query for non-dismax query parser

2011-03-24 Thread cyang2010
Hi iorixxx,

Thanks for your reply.  yeah, an additional query with the boost value will
work.

However, I just wonder where you get the information that BoostQParserPlugin
only handles function query?

I looked up the javadoc, and still can't get that.  This is the javadoc.


Create a boosted query from the input value. The main value is the query to
be boosted.
Other parameters: b, the function query to use as the boost. 


This just say if b value is specified it is a function query.   I just don't
understand why dismaxParser has both bf and bq, but for BoostQParserPlugin
there is only bf equivalent. 

Another question is by specifying localParameter like that in query, does it
mean to use the default LuceneQParserPlugin primarily and only use
BoostQParserPlugin for the content with the {}?

Thanks.  look forward to your reply,


cy

--
View this message in context: 
http://lucene.472066.n3.nabble.com/how-to-run-boost-query-for-non-dismax-query-parser-tp2723442p2726422.html
Sent from the Solr - User mailing list archive at Nabble.com.


Re: how to run boost query for non-dismax query parser

2011-03-24 Thread Ahmet Arslan
 Thanks for your reply.  yeah, an additional query with
 the boost value will
 work.
 
 However, I just wonder where you get the information that
 BoostQParserPlugin
 only handles function query?
 
 I looked up the javadoc, and still can't get that. 
 This is the javadoc.
 
 
 Create a boosted query from the input value. The main value
 is the query to
 be boosted.
 Other parameters: b, the function query to use as the
 boost. 
 
 
 This just say if b value is specified it is a function
 query.   

As you and wiki said, b is the function query to use as the boost.

 I just don't
 understand why dismaxParser has both bf and bq, but for
 BoostQParserPlugin
 there is only bf equivalent. 

I don't know that :) However optional clauses with LuceneQParserPlugin will do 
the same effect as dismax's bq.
 
 Another question is by specifying localParameter like that
 in query, does it
 mean to use the default LuceneQParserPlugin primarily and
 only use
 BoostQParserPlugin for the content with the {}?

Not only for BoostQParserPlugin.

http://wiki.apache.org/solr/LocalParams

http://wiki.apache.org/solr/SimpleFacetParameters#Multi-Select_Faceting_and_LocalParams






Re: how to run boost query for non-dismax query parser

2011-03-24 Thread cyang2010
iorixxx, thanks for your reply.

Another a little bit off topic question.  I looked over all the subclasses
of QParserPlugin.  It seesm like most of them provide complementary parsing
to the default lucene/solr parser.   Except prefixParser.  What is the
intended usage of that one?  The default lucene/solr parser is able to parse
prefix query.  Is the intended usage with dismax parser?

--
View this message in context: 
http://lucene.472066.n3.nabble.com/how-to-run-boost-query-for-non-dismax-query-parser-tp2723442p2727566.html
Sent from the Solr - User mailing list archive at Nabble.com.


how to run boost query for non-dismax query parser

2011-03-23 Thread cyang2010
Hi,

I need to code some boosting logic when some field equal to some value.   I
was able to get it work if using dismax query parser.  However, since the
solr query will need to handle prefix or fuzzy query, therefore, dismax
query parser is not really my choice.  

Therefore, i want to use standard query parser, but still have dismax's
boosting query logic.  For example, this query return all the titles
regardless what the value is, however, will boost the score of those which
genres=5237:

http://localhost:8983/solr/titles/select?indent=onstart=0rows=10fl=*%2Cscorewt=standardexplainOther=hl.fl=qt=standardq={!boost%20b=genres:5237^2.2}*%3A*debugQuery=on


Here is the exception i get:
HTTP ERROR: 400

org.apache.lucene.queryParser.ParseException: Expected ',' at position 6 in
'genres:5237^2.2'


I am just following the instruction on this page although the instruction
there is really to implement a boost function, instead of boosting query. 
http://wiki.apache.org/solr/SolrRelevancyFAQ#How_can_I_boost_the_score_of_newer_documents

Thanks for your help,

cy

--
View this message in context: 
http://lucene.472066.n3.nabble.com/how-to-run-boost-query-for-non-dismax-query-parser-tp2723442p2723442.html
Sent from the Solr - User mailing list archive at Nabble.com.