: The best example I can think of is a resume database. You could : certainly just put the whole resume : document into the text index and do full text searches. But to answer : the question of what people : received a Harvard MBA in the last 10 years and have worked at Intel in : the last 5 years, you have : to correlate the years of attendance with the schoolName entry. : Otherwise you might be getting years : for some other education/work history entry.
ah ... I see what you are describing, yes correllating matches on seperate fields is definteily a non-trivial problem in Solr/Lucene ... for simple things like "has an MBA from harvard" using position gaps and span queries can be used to distinguish people who acctually have an MBA from Harverd from those who have a BA from Harvard and an MBA from somewhere else ... but the numeric tests start to make things tricky. one solution is to put all aspects of the criteria that are *not* numeric into a dynamic field name and query on it, ala... school_mba_harvard:[1996 TO *] ...but that's not a super generalized solution. It is however the best solution i can offer :) : By adding an objType field and combining search results, you can be sure : that the year/schoolName : query matched a unique education record. The tricky bit is in getting a : list of field values (e.g. foreign : keys, which are essentially facets) for a result set very quickly. ... : We'll see. I have my doubts that it will work for any but the smallest : of collections, which ours certainly isn't. I think you'll find that you are right about that. what you're descrbing seems almost more of like a prolog-ish rule based knowledge engine type problem. -Hoss