2012/4/24 Mindaugas Žakšauskas <min...@gmail.com>: > Hi, > > I maintain a distributed system which Solr is part of. The data which > is kept is Solr is "permissioned" and permissions are currently > implemented by taking the original user query, adding certain bits to > it which would make it return less data in the search results. Now I > am at the point where I need to go over this functionality and try to > improve it. > > Changing this to send two separate queries (q=...&fq=...) would be the > first logical thing to do, however I was thinking of an extra > improvement. Instead of generating filter query, converting it into a > String, sending over the HTTP just to parse it by Solr again - would > it not be better to take generated Lucene fq query, serialize it using > Java serialization, convert it to, say, Base64 and then send and > deserialize it on the Solr end? Has anyone tried doing any performance > comparisons on this topic?
I'm about to try out a contribution for serializing queries in Javascript using Jackson. I've previously done this by serializing my own data structure and putting the JSON into a custom query parameter. > > I am particularly concerned about this because in extreme cases my > filter queries can be very large (1000s of characters long) and we > already had to do tweaks as the size of GET requests would exceed > default limits. And yes, we could move to POST but I would like to > minimize both the amount of data that is sent over and the time taken > to parse large queries. > > Thanks in advance. > > m.