: This may seem to be an easy one but I have been struggling to get it
: working. To simplify things, let's say I have a field that can contain any
: combination of the 26 alphabetic letters, space delimited:
I suspect you may have "over simplified" your problem in a way that may 
make some specific solutions for your real use case non-obvious becaues of 
the way you've simplified it.  

the more you can tell us about your *real* use case, the more likeley 
people can give you *real* answers.

That said...

: 1. Any doc that contains exactly the 4 letters a b y z (sequence not
: important)
: 2. Any docs that contains only a subset of the 4 letters a b y z (sequence
: not important)
: 
: Note if a doc contains any letters other than the 4 letters a b y z will not
: qualify. So in this case, only the first doc should be returned.

...since the number of values is finite (and small) i would index your 
data as a simple multivalued StrField (or TextField using a whitespace 
tokenizer) and then write your queries such that you deliberately exclude 
documents matching the inverse set of your input.

ie: query = "a b y z" ...

 q = +(a b y z) -(c d e f g h i j k l m n o b q r s t u v w x)

...or leverage filter cache...

 q = a b y z & fq = -c & fq = -d & fq = -e & fq = -f & ....



-Hoss

Reply via email to