On Apr 7, 2011, at 9:17 PM, Yang wrote:

> I'm new to lucene/search engine , and have been struggling with these
> questions recently.
> I'd appreciate a lot of you could shed some light on this.
> 
> 
> let's say I do a query on
> 
> dog   greyhound
> 
> note that I did not quote them, i.e. this is not a phrase search.
> 
> what happens under the hood ?

A lot and it is really beyond the scope of an email, but...

Assuming dog and greyhound are not removed by analysis, it will go to the 
inverted index and look up each of the terms and the documents for each of the 
terms and score them (see BooleanQuery for how it combines them).  I would 
suggest setting up a really simple program that does this query and then just 
step through the code.  You may even want to start a little simpler with a 
single term.

> 
> which term does Lucene use to look up the inverted Index ?

Both


> I read somewhere that Lucene uses the term with the higher IDF (i.e.
> the more distinguishing term), i.e. in this case
> "greyhound", but what about dog? does Lucene traverse down the doclist
> of  "dog" at all?

Yes, it does.

> if I provide multiple terms in my query,
> generally how does Lucene decide how many doclists to travel down?
> 

I don't believe we currently do any pruning, so all will be visited.

> 
> I read that Lucene uses a combination of "binary model"

I would say "Boolean Model"

> and  VSM, then
> it seems that in the above case, it finds
> the full doclist of dog , and that of "greyhound", (the binary model
> part), then find the common docs from the two doclists,
> then order them by scores ( the VSM part).

Yes, assuming an AND combines them.  If it's an OR, then it will union the 
lists.  

>  is it true that the FULL
> doclists are fetched first? or is some pruning done on the individual
> doclists?

All docs that contain the word are scored and can potentially be returned if 
you have enough time/memory (not recommended)

> I see the
> talk in http://www.slideshare.net/abial/eurocon2010  that talks about
> pruning and tiered search, but is this the default behavior of Lucene?

That is more advanced and is something you can do w/ Lucene, but is not out of 
the box.

> how are the doclists sorted? (by  idf ?? --- sorry I'm just beginning
> to sift through a lot of docs online, somehow got this impression but
> can't form a precise conclusion)
> 

It depends on the query, etc.  Have a look at the Scoring page on the website 
for more info.

> 
> 
> also generally, could you please provide some good articles on how
> lucene/search engines work? I've read the "anatomy of a search engine"
> (google Sergey Brin & Larry Page paper),
> "introduction to information retrieval (Manning et al ) "  , "Lucene
> in action" ....

I'd start w/ Lucene in Action 2nd ed.  Brin and Page paper is good.  As is the 
Manning book, Baeza Yates, Grossman, etc.  I believe we have a resources page 
on our Wiki that lists out a lot of books and talks.

I would recommend, however, just trying out small examples of different queries 
and stepping through the code if you really want to know the guts of Lucene.

--------------------------
Grant Ingersoll
http://www.lucidimagination.com/

Search the Lucene ecosystem docs using Solr/Lucene:
http://www.lucidimagination.com/search


---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-user-h...@lucene.apache.org

Reply via email to