On Nov 19, 2009, at 7:02 AM, Andrea Campi wrote:

> Hi,
> 
> I'm trying to wrap my head around nested queries and I'm having some trouble 
> figuring out how far can I go with them. I have to say documentation is still 
> a bit sparse... :/
> 
> 
> I'm trying to build a query that would search the same term(s) on different 
> fields with different boosts, like:
> 
> text:something OR ftext:something^1000
> 
> In addition I am adding a function query to manipulate the score further.
> 
> 
> To make things easier and more maintainable, I'd like to use nested queries 
> for that; I'd like to be able to write:
> 
> q={!boost b=$dateboost v=ftext:$terms^1000 OR 
> text:$terms}&dateboost=product(...etc.)&terms=something
> 
> Or even better:
> 
> q={!boost b=$dateboost v=$qq}&qq={!query v=ftext:$terms^1000 OR 
> text:$terms}&dateboost=product(...etc.)&terms=something
> 
> 
> I tried both of the above (and some other variations, with parenthesis etc) 
> but it looks like variables are replaced only if they are the only thing that 
> appears after a v=.
> For instance, this works perfectly:
> 
> q={!boost b=$dateboost v=$qq}&qq={!query 
> v=$terms}&dateboost=product(...etc.)&terms=something
> 
> whereas even this fails:
> 
> q={!boost b=$dateboost v=$qq}&qq={!query 
> v=text:$terms}&dateboost=product(...etc.)&terms=something
> 
> 
> Do you guys see any way to obtain what I want--or to do it better?

Sounds like you might benefit from using the Dismax Parser.  You can specify 
the field boosting thing in your config and also add the bf (boost function) 
capability.



Reply via email to