I have (among others) the follwing objects in my RavenDB:
Object1
:
{
"Texts" : [ "one two", "three four" ]
}
Object2
:
{
"Texts" : [ "one three", "two four" ]
}
I want to find all objects where a string in Texts
contains both of the terms one
and two
.
If I index the field
from doc in docs.Objects select new { Texts }
and analyze it using the StandardAnalyzer
the following query will return both Object1
and Object2
when I only want Object1
:
Texts:(one AND two)
How can I solve this?
Your requirement aren't really compatible. What about this document?
Do you want to find it when you search for
one AND two
?If not, just do a phrase search, if yes, you can't really do what you want without using fanout.
If you need it that way, you can do:
Note that this is a fan-out index, and if you have a lot of texts per document, that require paying attention to the resources required.