I can't get the suggested way to work (either the child scorer or creating a query wrapper), so may end up doing a query on each field, just not sure how expensive that will end up being...
Additional thoughts? -Todd -----Original Message----- From: Sanne Grinovero [mailto:[email protected]] Sent: Wednesday, April 01, 2015 5:33 PM To: [email protected] Subject: Re: [EXTERNAL] Re: general question Hello all, I don't need to do the same, but the suggestions got me curious. Why would you consider it more efficient to iterate on the child scorers, rather than performing an independent Query on each field? (assuming he indexes each {table,column} content in a different field) Thanks, Sanne On 31 March 2015 at 15:07, Michael McCandless <[email protected]> wrote: > Indeed LUCENE-6229 is very related here ... > > Failing Scorer.getChildren, I think you'd have to make your own query > wrappers that wrapped the whole tree (Query, Weight, Scorer) and then > kept track, using those wrappers? > > Mike McCandless > > http://blog.mikemccandless.com > > > On Tue, Mar 31, 2015 at 9:25 AM, Terry Smith <[email protected]> wrote: >> Mike, >> >> Your suggestion seems related to LUCENE-6229 >> <https://issues.apache.org/jira/browse/LUCENE-6229>. My understanding >> is that we shouldn't rely on Scorer.getChildren() as you won't always >> get all child scorers (just the minimum needed to match) and their >> positions aren't necessarily reliable. >> >> Should we be suggesting an different approach to Todd's question? >> >> --Terry >> >> >> On Mon, Mar 30, 2015 at 6:08 PM, Fielder, Todd Patrick >> <[email protected]> >> wrote: >> >>> I am attempting to loop through the ChildScorer of the >>> scorer.getChildren() method inside my collect() call, and it is empty. >>> >>> Is there something else I should do or some setup that I am missing? >>> >>> Thanks >>> >>> @Override >>> public void collect(int docID) throws IOException { >>> >>> for(ChildScorer child : scorer.getChildren()){ >>> System.out.println("relationship: " + child.relationship); >>> } >>> >>> } >>> >>> -----Original Message----- >>> From: Michael McCandless [mailto:[email protected]] >>> Sent: Monday, March 30, 2015 11:20 AM >>> To: Lucene Users; [email protected] >>> Subject: [EXTERNAL] Re: general question >>> >>> You could do this with a custom Collector which, for every hit >>> visits all child scorers asking each one whether it matched the current hit. >>> Your collector would have to somehow store this information away so >>> that once the search is done and you pull the top N hits, you know >>> which fields those hits had matched. >>> >>> Mike McCandless >>> >>> http://blog.mikemccandless.com >>> >>> >>> On Mon, Mar 30, 2015 at 1:07 PM, Fielder, Todd Patrick >>> <[email protected]> >>> wrote: >>> > Hello, >>> > >>> > I'm new to Lucene and am looking for advice. I'm wanting to >>> > search the >>> entire DB (or almost the entire DB) for a keyword. The users also >>> want to know which field the string occurred in. >>> > >>> > I can think of two ways to do this, but neither are ideal and I'm >>> looking for suggestions: >>> > >>> > 1) Search the entire DB and add all the text I want to search to a >>> single string and store that string. Then create a query against >>> that string...Using this approach, is there any way to know which >>> field the match it is in? Context highlighting is not sufficient, >>> they want the DB column of the match...we are using EclipseLink/JPA >>> (but are considering switching to Hibernate) >>> > >>> > 2) Query every single field checking for results with each query >>> (this seems slow (and tedious!)) >>> > >>> > Any help is greatly appreciated >>> > >>> > -Todd >>> >>> -------------------------------------------------------------------- >>> - To unsubscribe, e-mail: [email protected] >>> For additional commands, e-mail: [email protected] >>> >>> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
