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

Reply via email to