Hey everyone, I'm having some difficulty figuring out the best way to optimize for a certain query situation. My documents have a many-valued field that stores lists of IDs. All in all there are probably about 10,000 distinct IDs throughout my index. I need to be able to query and find all documents that contain a given set of IDs. Ie, I want to find all documents that contain IDs 3, 202, 3030 or 505. Currently I'm implementing this like so:
q= (myfield:3) OR (myfield:202) OR (myfield:3030) OR (myfield:505). It's possible that there could be upwards of hundreds of terms, although 90% of the time it will be under 10. Ideally I would like to do this with a filter query, but I have read that it is impossible to cache OR'd terms in a fq, though this feature may come soon. The problem is that the combinations of OR'd terms will almost always be unique, so the query cache will have a very low hit rate. It would be great if the individual terms could be cached individually, but I'm not sure how to accomplish that. Any suggestions would be welcome! -Kallin Nagelberg