
lucene at mikemccandless
Feb 17, 2009, 3:33 AM
Post #8 of 8
(1710 views)
Permalink
|
It sounds like function queries would be a fit here -- they let you customize how a documents score is computed, and eg you could blend the "normal" Lucene relevance with your own contribution, per document. Mike sendtoprat [at] yahoo wrote: > > Ya. Earlier we were sorting only. But sorting didn't always result > in optimal > ranking as it completely ignores Lucene score. We do not want that. > We want > a combination of different features, and not necessarily sorting by > one > field values. > > Pratyush > > > Michael McCandless-2 wrote: >> >> >> Can you simply sort by that string field? (Which also uses >> FieldCache >> under the hood to get the values). >> >> Mike >> >> On Feb 12, 2009, at 3:46 PM, sendtoprat [at] yahoo wrote: >> >>> >>> I guess I could use, String[] s = >>> ExtendedFieldCache.EXT_DEFAULT.getStrings(reader, fieldname); >>> It will consume memory but should not be that bad. For my index this >>> field >>> has sortable string value which I could use in my model. I only need >>> to do >>> this for one field. Comment ? >>> >>> Pratyush >>> >>> Michael McCandless-2 wrote: >>>> >>>> >>>> [.You'd probably get more responses on java-user@ instead of >>>> general@] >>>> >>>> Could you use per-field boost? >>>> >>>> Or, since it sounds like you have a separate field with the boost >>>> you >>>> want, >>>> maybe you could do this all at search time using a function query? >>>> >>>> An advanced possibility is to make your own indexing chain, and >>>> use a >>>> different >>>> NormsWriter, but that's an extremely big hammer to pull out for >>>> this >>>> nail. >>>> >>>> Mike >>>> >>>> sendtoprat [at] yahoo wrote: >>>> >>>>> >>>>> Hi >>>>> How can I set my own norm value during indexing time. From my >>>>> quick >>>>> reading >>>>> of code, I believe that norm values are written by NormsWriter >>>>> class >>>>> which >>>>> is called from final class DocumentsWriter. Norm values are set by >>>>> calling >>>>> org.apache.lucene.search.Similarity#lengthNorm(String fieldName, >>>>> int >>>>> numTokens). But I need to set the norm using the field value which >>>>> is a >>>>> float number. I will be using this norm for my retrieval model. I >>>>> cannot use >>>>> document.setBoost(), as i need to boost the fields differently. >>>>> >>>>> thanks >>>>> Pratyush >>>>> -- >>>>> View this message in context: >>>>> http://www.nabble.com/Modify-Norm-tp21959177p21959177.html >>>>> Sent from the Lucene - General mailing list archive at Nabble.com. >>>>> >>>> >>>> >>>> >>> >>> -- >>> View this message in context: >>> http://www.nabble.com/Modify-Norm-tp21959177p21984666.html >>> Sent from the Lucene - General mailing list archive at Nabble.com. >>> >> >> >> > > -- > View this message in context: http://www.nabble.com/Modify-Norm-tp21959177p21987878.html > Sent from the Lucene - General mailing list archive at Nabble.com. >
|