Hi all i am running solr query with these parameter bf: "sum(product(new_popularity,100),if(exists(third_price),50,0))" qf: "test_product^5 category_path_tf^4 product_id gender" q: "handbags between rs150 and rs 400" defType: "edismax"
parsed query is like below one for q:- (+(DisjunctionMaxQuery((category_path_tf:handbags^4.0 | gender:handbag | test_product:handbag^5.0 | product_id:handbags)) DisjunctionMaxQuery((category_path_tf:between^4.0 | gender:between | test_product:between^5.0 | product_id:between)) +DisjunctionMaxQuery((category_path_tf:rs150^4.0 | gender:rs150 | test_product:rs150^5.0 | product_id:rs150)) +DisjunctionMaxQuery((category_path_tf:rs^4.0 | gender:rs | test_product:rs^5.0 | product_id:rs)) DisjunctionMaxQuery((category_path_tf:400^4.0 | gender:400 | test_product:400^5.0 | product_id:400))) DisjunctionMaxQuery(("":"handbags between rs150 ? rs 400")) (DisjunctionMaxQuery(("":"handbags between")) DisjunctionMaxQuery(("":"between rs150")) DisjunctionMaxQuery(("":"rs 400"))) (DisjunctionMaxQuery(("":"handbags between rs150")) DisjunctionMaxQuery(("":"between rs150")) DisjunctionMaxQuery(("":"rs150 ? rs")) DisjunctionMaxQuery(("":"? rs 400"))) FunctionQuery(sum(product(float(new_popularity),const(100)),if(exists(float(third_price)),const(50),const(0)))))/no_coord but for dismax parser it is working perfect: (+(DisjunctionMaxQuery((category_path_tf:handbags^4.0 | gender:handbag | test_product:handbag^5.0 | product_id:handbags)) DisjunctionMaxQuery((category_path_tf:between^4.0 | gender:between | test_product:between^5.0 | product_id:between)) DisjunctionMaxQuery((category_path_tf:rs150^4.0 | gender:rs150 | test_product:rs150^5.0 | product_id:rs150)) DisjunctionMaxQuery((product_id:and)) DisjunctionMaxQuery((category_path_tf:rs^4.0 | gender:rs | test_product:rs^5.0 | product_id:rs)) DisjunctionMaxQuery((category_path_tf:400^4.0 | gender:400 | test_product:400^5.0 | product_id:400))) DisjunctionMaxQuery(("":"handbags between rs150 ? rs 400")) FunctionQuery(sum(product(float(new_popularity),const(100)),if(exists(float(third_price)),const(50),const(0)))))/no_coord *according to me difference between dismax and edismax is based on some extra features plus working of boosting fucntions.* Regards, Abhishek