Hi,
I don't think you need a "more structured" index. Instead you have to explore the Lucene query syntax and the Lucene query API.
Quote:
When I conduct a search for book.author.name.firstname=Sue and book.author.name.lastname=Doe, this record will return. However, Doe is really John's last name and does not really match what I am looking for in the search. Is there any way I can get these context dependent searches to work?
That's depends. If you use a MultiFieldQueryParser and your input is "book.author.name.firstname=Sue book.author.name.lastname=Doe" then you will get a hit, but if you use the AND oprtator it won't "book.author.name.firstname=Sue AND book.author.name.lastname=Doe". If you don't have a single search field, but rather a search mask (several input fields), then you can also use BooleanQuery and progammatically build your query.
--Hardy