Hi, Your filter query is looking for a match of "man's friend" in a single field. Regardless of analysis of the common_names field, all terms are present in the common_names field of both documents. A multiValued field is actually a single field with all data separated with positionIncrement. Try setting that value high enough and use a PhraseQuery.
That should work Cheers, > Hi all, > > I have a field set up like this: > > <field name="common_names" multiValued="true" type="text" indexed="true" > stored="true" required="false" /> > > And I have some records: > > RECORD1 > <arr name="common_names"> > <str>man's best friend</str> > <str>pooch</str> > </arr> > > RECORD2 > <arr name="common_names"> > <str>man's worst enemy</str> > <str>friend to no one</str> > </arr> > > Now if I do a search such as: > http://localhost:8983/solr/search/?q=*:*&fq={!q.op=AND > df=common_names}man's friend > > Both records are returned. However, I only want RECORD1 returned. I > understand why RECORD2 is returned but how can I structure my query so that > only RECORD1 is returned? > > Thanks, > > Brian Lamb