I can just pop it in - thanks a lot. I like the little example myself. It says a lot I think.
Shai Erera wrote: > I guess we can add something like this: > > * > * @param docsScoredInOrder > * specifies if documents will be scored in doc ID order by the > * query. If you're not sure in advance, you can do the > following: > * <pre> > * boolean docsScoredInOrder = > !q.weight(searcher).scoresDocsOutOfOrder(); > * TopScoreDocCollector tsdc = > TopScoreDocCollector.create(numHits, docsScoredInOrder); > * </pre> > * > * @see Weight#scoresDocsOutOfOrder() > > I'm not even sure if the code example is needed ... > > Do you want to add it to TSDC and TFC, or shall I open an issue for that? > > Shai > > On Mon, Aug 24, 2009 at 6:00 PM, Mark Miller <markrmil...@gmail.com > <mailto:markrmil...@gmail.com>> wrote: > > Thanks Shai. That all makes sense to me. > > bq. Perhaps we should add to the javadocs something like "you can call > query.weight().scoresDocsOutOfOrder to instantiate the optimal > TFC/TSDC"? > > I guess this is all I would argue for as well - basically a bit more > informative javadoc for scoreOutOfOrder: > > TopScoreDocCollector: > > * Creates a new {...@link TopScoreDocCollector} given the number of > hits to > * collect and whether documents are scored in order by the input > * {...@link Scorer} to {...@link #setScorer(Scorer)}. > > Shai Erera wrote: > > I think we've had a similar discussion on this issue (as part of the > > JIRA issue), and the reason for not defaulting to anything was > > back-compat. > > > > For example, we know that not tracking doc scores is better when you > > simply sort by a field. But we can't have a default that says "don't > > track doc scores", since if people will use it - they might > break. On > > the other hand, defaulting in 2.9 to track doc scores is not good > > either, because we want to stop tracking scores when you sort ... > > > > So the outcome was that the "easy" search methods on Searcher > pick the > > best defaults for you (and we've documented that in 3.0 those > methods > > will stop tracking scores etc.) and if you choose to instantiate > your > > own TopFieldCollector, then you probably know what you're doing, and > > therefore defaults are not that important there. > > > > I guess back-compat wise we can say that in 2.9 there is a "create" > > method which picks certain defaults and will change in 3.0. But I > > think the bigger question is if someone instantiates TFC, does he do > > it because he wants to override Lucene's Searcher defaults? I guess > > the answer is not a definite YES (because I can think of cases > where I > > instantiate TFC for other purposes than overriding Lucene's > defaults), > > but is it perhaps MOST LIKELY? > > > > The one parameter which I think may confuse people is w/ > > docsScoredInOrder - that is only relevant if I use my own Scorer, > > which I think is a very advanced thing. And if I need to instantiate > > TFC or TSDC, I may not know what to pass there ... But here there is > > no good default either, because it really depends on the query > that is > > run. Perhaps we should add to the javadocs something like "you can > > call query.weight().scoresDocsOutOfOrder to instantiate the optimal > > TFC/TSDC"? > > > > Shai > > > > On Mon, Aug 24, 2009 at 5:40 PM, Mark Miller > <markrmil...@gmail.com <mailto:markrmil...@gmail.com> > > <mailto:markrmil...@gmail.com <mailto:markrmil...@gmail.com>>> > wrote: > > > > I was just going to add actually: > > > > Yes you can just use the other Searcher methods. Perhaps > thats just > > fine. I don't think this a large issue. > > > > But you could also use void search(Weight weight, Filter filter, > > Collector collector). > > > > I've created my own TopDocs collectors for a handful of > reasons in > > the past. > > > > So I don't think this is a huge deal, but if you used the TopDoc > > collectors in the past, > > you just had to pass sort/numDocs - now that they are > deprecated, > > if you > > happened to be > > using it - you go over to the new classes (after finding the new > > static > > factories) and are likely not sure what options to pick. Why > not allow > > the same > > params and pick defaults that always work? People that want > to eek out > > speed can tweak the > > longer param list. > > > > I agree - its not a huge deal - I guess it is more advanced > use - > > but it > > was much easier to follow > > and use with the deprecated versions. Its gotten quite a bit > more > > confusing. > > > > I'd still want to be able to play around with Collectors > without being > > an expert. > > > > Just an idea though - I don't think its 100% necessary. When > I see > > advanced options that are more for optimization though, > > I like to have defaults so that I don't have to understand > everything > > perfectly before I use it. > > > > - Mark > > > > Yonik Seeley wrote: > > > But creating the collector is expert use, right? > > > The normal use would be from Searcher: > > > TopDocs search(Query query, int n) > > > TopDocs search(Query query, Filter filter, int n) > > > > > > > > > -Yonik > > > http://www.lucidimagination.com > > > > > > > > > > > > On Mon, Aug 24, 2009 at 10:15 AM, Mark > > Miller<markrmil...@gmail.com <mailto:markrmil...@gmail.com> > <mailto:markrmil...@gmail.com <mailto:markrmil...@gmail.com>>> wrote: > > > > > >> Hey all, > > >> > > >> Hits, which used to be the non expert search API has been > > deprecated - > > >> so TopDocs is now > > >> essentially the non expert search API. But when you go to use > > it you are > > >> greeted with: > > >> > > >> public static TopFieldCollector create(Sort sort, int > numHits, > > >> boolean fillFields, boolean trackDocScores, boolean > > trackMaxScore, > > >> boolean docsScoredInOrder) > > >> > > >> and > > >> > > >> public static TopScoreDocCollector create(int numHits, > boolean > > >> docsScoredInOrder) { > > >> > > >> if (docsScoredInOrder) { > > >> return new InOrderTopScoreDocCollector(numHits); > > >> } else { > > >> return new OutOfOrderTopScoreDocCollector(numHits); > > >> } > > >> > > >> } > > >> > > >> Woah ! Think of the poor noobies ;) > > >> > > >> I don't know if I want my docs scored in order. Seriously, I > > don't. Its > > >> sounds nice though. And fill fields? Please do I guess :) > > >> > > >> What do you think about having versions that default to > something > > >> reasonable ? And you just have to give numhits and sort, > numhits? > > >> > > >> This API now has a dual role IMO - expert and non expert. > > >> > > >> -- > > >> - Mark > > >> > > >> http://www.lucidimagination.com > > >> > > >> > > >> > > >> > > >> > > > --------------------------------------------------------------------- > > >> To unsubscribe, e-mail: > java-dev-unsubscr...@lucene.apache.org > <mailto:java-dev-unsubscr...@lucene.apache.org> > > <mailto:java-dev-unsubscr...@lucene.apache.org > <mailto:java-dev-unsubscr...@lucene.apache.org>> > > >> For additional commands, e-mail: > > java-dev-h...@lucene.apache.org > <mailto:java-dev-h...@lucene.apache.org> > > <mailto:java-dev-h...@lucene.apache.org > <mailto:java-dev-h...@lucene.apache.org>> > > >> > > >> > > >> > > > > > > > > > --------------------------------------------------------------------- > > > To unsubscribe, e-mail: > java-dev-unsubscr...@lucene.apache.org > <mailto:java-dev-unsubscr...@lucene.apache.org> > > <mailto:java-dev-unsubscr...@lucene.apache.org > <mailto:java-dev-unsubscr...@lucene.apache.org>> > > > For additional commands, e-mail: > java-dev-h...@lucene.apache.org > <mailto:java-dev-h...@lucene.apache.org> > > <mailto:java-dev-h...@lucene.apache.org > <mailto:java-dev-h...@lucene.apache.org>> > > > > > > > > > > > > -- > > - Mark > > > > http://www.lucidimagination.com > > > > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: > java-dev-unsubscr...@lucene.apache.org > <mailto:java-dev-unsubscr...@lucene.apache.org> > > <mailto:java-dev-unsubscr...@lucene.apache.org > <mailto:java-dev-unsubscr...@lucene.apache.org>> > > For additional commands, e-mail: > java-dev-h...@lucene.apache.org > <mailto:java-dev-h...@lucene.apache.org> > > <mailto:java-dev-h...@lucene.apache.org > <mailto:java-dev-h...@lucene.apache.org>> > > > > > > > -- > - Mark > > http://www.lucidimagination.com > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org > <mailto:java-dev-unsubscr...@lucene.apache.org> > For additional commands, e-mail: java-dev-h...@lucene.apache.org > <mailto:java-dev-h...@lucene.apache.org> > > -- - Mark http://www.lucidimagination.com --------------------------------------------------------------------- To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org For additional commands, e-mail: java-dev-h...@lucene.apache.org