Basically the classes I'm indexing have the following relationships: Student 1------* Attendance 1------* Course
The only root class is Student, i.e. only instances of this class can be returned from a search. I have a Student object graph that could be represented in JSON as follows: { name: Bob, attendances: [ {mandatory: N, course: {name: cooking}}, {mandatory: Y, course: {name: art}}] } When I search for an instance of Student using the query: "+courseName:cooking +mandatory:Y" Bob is returned because, because he attends a course named "cooking" and he attends a mandatory course (named "art).. But what I really want to search for is students that attend a mandatory cooking course. It doesn't appear to be possible to do this based on the responses provided here: http://stackoverflow.com/questions/1202422/lucene-query-syntax/1203186#1203186 I opened the Student index in Luke, exported it to XML and have appended the results here: http://pastebin.com/m6e5bbcf3 I don't really know how to interpret this myself, but thanks in advance for any further help you can provide. - Don