I\'m using elasticsearch and am having a devil of a time getting an exact match to happen. I\'ve tried various combinations of match, query_string, etc, and I either get not
Hash two value which you need to search into hash key, then search it.
Fields are analyzed with the standard analyzer by default. If you would like to check exact match, you could store your field not analyzed also e.g:
"dog":{
"type":"multi_field",
"fields":{
"dog":{
"include_in_all":false,
"type":"string",
"index":"not_analyzed",
"store":"no"
},
"_tokenized":{
"include_in_all":false,
"type":"string",
"index":"analyzed",
"store":"no"
}
}
}
Then you can query the dog-field for exact matches, and dog._tokenized for analyzed queries (like fulltext)
I think that your problem is that field term
is being analyzed (check your mapping) with the standard analyzer and is filtering stopwords such as the
or that
. For that reason you get the same score for Dog
and The Dog
. So maybe you can solve your problem by configuring a custom analyzer => documentation page