Hello - i just looked up the DocTransformer Javadoc and spotted the getExtraRequestFields method.
What you mention makes sense, so i immediately tried: solr/search/select?omitHeader=true&wt=json&indent=true&rows=1&sort=id asc&q=*:*&fl=minhash,minhash:[binstr] { "response":{"numFound":97895,"start":0,"docs":[ { "minhash":"1110110101111010100011010010101111100001110110010111101101111010"}] }} So as i get it, instead of using getRequestedFields, just now i just did an explicit get for that fields. Don't mind the changed numFound, it's a live index. Well, i can work with this really fine knowing this, but does it make sense? I did assume (or be wrong in doing so) that fl=minhash:[binstr] should mean get that field and pass it through the transformer. At least i just now fell for it, maybe other shouldn't :) Anyway, thanks again today, Markus -----Original message----- > From:Chris Hostetter <hossman_luc...@fucit.org> > Sent: Wednesday 14th December 2016 23:14 > To: solr-user <solr-user@lucene.apache.org> > Subject: Re: DocTransformer not always working > > > Fairly certain you aren't overridding getExtraRequestFields, so when your > DocTransformer is evaluated it can'd find the field you want it to > transform. > > By default, the ResponseWriters don't provide any fields that aren't > explicitly requested by the user, or specified as "extra" by the > DocTransformer. > > IIUC you want the stored value of the "minhash" field to be available to > you, but the response writer code doesn't know that -- it just knows you > want "minhash" to be the output respons key for the "[binstr]" > transformer. > > > Take a look at RawValueTransformerFactory as an example to borrow from. > > > > > : Date: Wed, 14 Dec 2016 21:55:26 +0000 > : From: Markus Jelsma <markus.jel...@openindex.io> > : Reply-To: solr-user@lucene.apache.org > : To: solr-user <solr-user@lucene.apache.org> > : Subject: DocTransformer not always working > : > : Hello - I just spotted an oddity with all two custom DocTransformers we > sometimes use on Solr 6.3.0. This particular transformer in the example just > transforms a long (or int) into a sequence of bits. I just use it as an > convenience to compare minhashes with my eyeballs. First example is very > straightforward, fl=minhash:[binstr], show only the minhash field, but as a > bit sequence. > : > : > solr/search/select?omitHeader=true&wt=json&indent=true&rows=1&sort=id%20asc&q=*:*&fl=minhash:[binstr] > : { > : "response":{"numFound":96933,"start":0,"docs":[ > : {}] > : }} > : > : The document is empty! This also happens with another transformer. The next > example i also request the lang field: > : > : solr/search/select?omitHeader=true&wt=json&indent=true&rows=1&sort=id > asc&q=*:*&fl=lang,minhash:[binstr] > : { > : "response":{"numFound":96933,"start":0,"docs":[ > : { > : "lang":"nl"}] > : }} > : > : Ok, at least i now get the lang field, but the transformed minhash is > nowhere to be seen. In the next example i request all fields and the > transformed minhash: > : > : > /solr/search/select?omitHeader=true&wt=json&indent=true&rows=1&sort=id%20asc&q=*:*&fl=*,minhash:[binstr] > : { > : "response":{"numFound":96933,"start":0,"docs":[ > : { > : > "minhash":"1110110101111010100011010010101111100001110110010111101101111010", > : ...other fields here > : "_version_":1553728923368423424}] > : }} > : > : So it seems that right now, i can only use a transformer properly if i > request all fields. I believe it used to work with all three examples just as > you would expect. But since i haven't used transformers for a while, i don't > know at which version it stopped working like that (if it ever did of course > :) > : > : Did i mess something up or did a bug creep on me? > : > : Thanks, > : Markus > : > > -Hoss > http://www.lucidworks.com/ >