hi all,
I need help simplifying my query. The doc structure is as follows.
docStructure
id A
cat : p, q, r
id B
cat : m, n ,o
id C
cat: l,b, o
Now given this structure my job is to find documents which have cat ids
belonging to a list. Right now this is achieved in this fashion using OR of
multiple queries. given list [p,n,o ] and ranked in the order.
Query 1: q : cat:p ---> doc:A
Query 2 : q : cat n AND !(cat:p) --> B
Query 3 : q (cat o AND !(cat:p) AND (cat:n)) --> C
final query = query1^3 OR query2^2 OR query3^1
this is to ensure the ranking is A,B,C
The query is pretty complicated and gets very long too so I would want to
form a shorter version of it if possible. There are just two constraints.
a: the highest preference is given to doc with cat:p even if some other
matches all the other terms. so A should be higher than B(even when B
matches both n and o) .
b. Also if there are two docs which have match on first cat :p, they
should have equal score irrespective of rest of values of cat. For example
consider an additional document D
id : D
cat :[p,n,o]
Now D and A both match on first cat p and therefore the fact that D also
matches on n and o should not matter and both A and D should have same
score.
Please let me know if there is a simple way of doing it.
--
View this message in context:
http://lucene.472066.n3.nabble.com/How-to-simplifying-my-query-for-appropriate-scoring-tp4140913.html
Sent from the Solr - User mailing list archive at Nabble.com.