So I have a Java application running on a websphere server. The server has an oracle database of boxes. Each box has a list of things in it. Each thing has a main description (input as text from humans), and a list of label/value pairs (ie, color:black, quantity:3, etc) that describe the thing.
I'd like to allow a user to search this database so I need a library to search the database and rank the results. The user will be allowed to input the same kind of information described above. I want to be able to list the boxes that most closely match what the user input.
I've looked into some search libraries such as Lucene and Xapian, but I'm not sure about the exact capabilities of various libraries. I'd like to be able to see the pros and cons and a little bit about how they work, so I've started doing some research.
But before that, I'd like to hear your suggestions for this particular project.