lucene-solr-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Abhishek Mishra <solrmis...@gmail.com>
Subject edismax parsing confusion
Date Mon, 03 Apr 2017 08:54:25 GMT
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

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message