Hi Thanks a lot , that helps
Regards Mukund On Thu, Dec 12, 2013 at 1:18 AM, Kydryavtsev Andrey <werde...@yandex.ru>wrote: > As I know (not 100% sure actually), function queries don't work with > multivalued fields. Why do you need multivalued fields here? Your "price" > and "numberOfCities" don't look like multivalued. At least you can try to > use, you know, some tricky format like > "50;40;20" to index multivalued field as single-valued and then parse this > into values list in function. > > 11.12.2013, 11:13, "Mukundaraman valakumaresan" <muk...@8kmiles.com>: > > Hi Kydryavtsev > > > > Thanks a lot it works, but how do i pass a multivalued field values to a > > function query? > > > > Can it be passed as a String array? > > > > Thanks & Regards > > Mukund > > > > On Tue, Dec 10, 2013 at 12:05 PM, Kydryavtsev Andrey <werde...@yandex.ru > >wrote: > > > >> You can implement it in this way: > >> Index number of cities as new int field (like <field > >> name="numberOfCities">2</field>) and implement user function like > >> > >> "customFunction(price, numberOfCities, 10000, 2000, 5)" > >> > >> Custom parser should parse this into value sources list. From first two > >> field sources we can get per doc value for this particular fields, > another > >> three will be ConstValueSource instances - just constants, so we can > access > >> all 5 values and implement custom formula per doc id. Find examples in > >> ValueSourceParser and solr functions like DefFunction or > MinFloatFunction > >> > >> 10.12.2013, 09:31, "Mukundaraman valakumaresan" <muk...@8kmiles.com>: > >>> Hi Hoss, > >>> > >>> Thanks a lot for your response. The actual problem is, > >>> > >>> For every record that I query, I have to execute a formula and sort > the > >>> records based on the value of the formula. > >>> The formula has elements from the record. > >>> > >>> For eg. for the following document ,I need to apply the formula > >> (maxprice - > >>> solrprice)/ (maxprice - minprice) + count(cities)/totalcities. > >>> where maxprice, maxprice and total cities will be available at run > time. > >>> > >>> So for the following record, it has to execute as (10000 - > >>> *5000*)/(10000-2000) > >>> + *2*/5 (where 5000 and 2, which are in bold are from the document) > >>> > >>> <doc> > >>> <field name="id">apartment_1</field> > >>> <field name="name">Casa Grande</field> > >>> <field name="locality">chennai</field> > >>> <field name="locality">bangalore</field> > >>> <field name="price">5000</field> > >>> </doc> > >>> > >>> Thanks & Regards > >>> Mukund > >>> > >>> On Tue, Dec 10, 2013 at 12:22 AM, Chris Hostetter > >>> <hossman_luc...@fucit.org>wrote: > >>>> Smells like an XY problem ... > >>>> > >>>> Can you please describe what your end goal is in writing a custom > >>>> function, and what you would do with things like the "name" field > >> inside > >>>> your funciton? > >>>> > >>>> In general, accessing stored field values for indexed documents ca > be > >>>> prohibitively expensive, it rather defeats the entire point of the > >>>> inverted index data structure. If you help us understand what your > >> goal > >>>> is, people may be able to offer performant suggestions. > >>>> > >>>> https://people.apache.org/~hossman/#xyproblem > >>>> XY Problem > >>>> > >>>> Your question appears to be an "XY Problem" ... that is: you are > >> dealing > >>>> with "X", you are assuming "Y" will help you, and you are asking > about > >> "Y" > >>>> without giving more details about the "X" so that we can understand > the > >>>> full issue. Perhaps the best solution doesn't involve "Y" at all? > >>>> See Also: http://www.perlmonks.org/index.pl?node_id=542341 > >>>> > >>>> : Date: Mon, 9 Dec 2013 20:24:15 +0530 > >>>> : From: Mukundaraman valakumaresan <muk...@8kmiles.com> > >>>> : Reply-To: solr-user@lucene.apache.org > >>>> : To: solr-user@lucene.apache.org > >>>> : Subject: Getting Solr Document Attributes from a Custom Function > >>>> : > >>>> : Hi All, > >>>> : > >>>> : I have a written a custom solr function and I would like to read a > >>>> property > >>>> : of the document inside my custom function. Is it possible to get > that > >>>> using > >>>> : Solr? > >>>> : > >>>> : For eg. inside the floatVal method, I would like to get the value > of > >> the > >>>> : attribute "name" > >>>> : > >>>> : public class CustomValueSource extends ValueSource { > >>>> : > >>>> : @Override > >>>> : public FunctionValues getValues(Map context, > >>>> : AtomicReaderContext readerContext) throws IOException { > >>>> : return new FloatDocValues(this) { @Override public float > >> floatVal(int > >>>> doc) > >>>> : { > >>>> : /******* > >>>> : getDocument(doc).getAttribute("name") > >>>> : > >>>> : ********/ }}} > >>>> : > >>>> : Thanks & Regards > >>>> : Mukund > >>>> : > >>>> > >>>> -Hoss > >>>> http://www.lucidworks.com/ >