GET /_validate/query?explain
{
"query": {
"multi_match": {
"query": "peter smith",
"type": "cross_fields",
"fields": [ "title", "first_name", "last_name" ]
}
}
}
Exact-Value Fields
The final topic that we should touch on before leaving multifield queries is
that of exact-value not_analyzed fields. It is not useful to mix
not_analyzed fields with analyzed fields in multi_match queries.
The reason for this can be demonstrated easily by looking at a query
explanation. Imagine that we have set the title field to be not_analyzed:
Because the title field is not analyzed, it searches that field for a single
term consisting of the whole query string!
title:peter smith
(
blended("peter", fields: [first_name, last_name])
blended("smith", fields: [first_name, last_name])
)
That term clearly does not exist in the inverted index of the title field,
and can never be found. Avoid using not_analyzed fields in multi_match
queries.