Nested document & require ignore case


(Garth) #1

Example:

blah [{
type : group,
name : wombat
accounts : [ a b c ]
},
{
type : group,
name : ferret
accounts : [ x y z ]
}]

Originally our queries were returning the incorrect answers if we did: name
: ferret & accounts : [ a b ] we would get data back. We realized that we
had to create a mapping for nested document and set the fields as
"not_analyzed". That works great except when character case is not
conformant. Name could be "Ferret" or "feRret" etc. How do I map this puppy
to be not_analyzed and ignore case? Plenty of discussions about it then
being analyzed. But nested does not allow for that.

Thanks
Garth


(Shay Banon) #2

You can configure a custom analyzer, with keyword tokenizer and lowercase
filter. keyword tokenizer will make sure all the text is a single token,
and lowercase will lowercase the characters.

On Wed, Jun 20, 2012 at 7:25 PM, Garth ghershfield.bah@gmail.com wrote:

Example:

blah [{
type : group,
name : wombat
accounts : [ a b c ]
},
{
type : group,
name : ferret
accounts : [ x y z ]
}]

Originally our queries were returning the incorrect answers if we did:
name : ferret & accounts : [ a b ] we would get data back. We realized that
we had to create a mapping for nested document and set the fields as
"not_analyzed". That works great except when character case is not
conformant. Name could be "Ferret" or "feRret" etc. How do I map this puppy
to be not_analyzed and ignore case? Plenty of discussions about it then
being analyzed. But nested does not allow for that.

Thanks
Garth


(Garth) #3

Tried that and the funky results started showing up again. Where "ferret" &
"a" would return a doc. Obviously doing something wrong.

On Thursday, June 21, 2012 3:22:51 AM UTC-4, kimchy wrote:

You can configure a custom analyzer, with keyword tokenizer and lowercase
filter. keyword tokenizer will make sure all the text is a single token,
and lowercase will lowercase the characters.

Example:

blah [{
type : group,
name : wombat
accounts : [ a b c ]
},
{
type : group,
name : ferret
accounts : [ x y z ]
}]

Originally our queries were returning the incorrect answers if we did:
name : ferret & accounts : [ a b ] we would get data back. We realized that
we had to create a mapping for nested document and set the fields as
"not_analyzed". That works great except when character case is not
conformant. Name could be "Ferret" or "feRret" etc. How do I map this puppy
to be not_analyzed and ignore case? Plenty of discussions about it then
being analyzed. But nested does not allow for that.

Thanks
Garth


(Garth) #4

Got it.


(system) #5