термины запросов не анализируются, следовательно, они не будут go с фазой анализа, следовательно, используются для точного соответствия , но их оценка все еще вычисляется при использовании в контексте запроса .
Когда вы используете термины запросов в контексте фильтра, это означает, что вы не выполняете поиск по ним, а скорее выполняете фильтрацию по ним, следовательно, для них не рассчитывается оценка.
Дополнительная информация по запросу и контекст фильтра в официальном ES do c.
И пример запроса термина в фильтре, и контекст запроса показаны в моем примере ниже
Термин запрос в контексте запроса
{
"query": {
"bool": {
"must": [
{
"term": {
"title": "c"
}
}
]
}
},
"size": 10
}
И результат со счетом
"hits": [
{
"_index": "cpp",
"_type": "_doc",
"_id": "4",
"_score": 0.2876821, --> notice score is calculated
"_source": {
"title": "c"
}
}
]
Срок запроса в контексте фильтра
{
"query": {
"bool": {
"filter": [ --> prev cluase replaced by `filter`
{
"term": {
"title": "c"
}
}
]
}
},
"size": 10
}
И результат поиска с контекстом фильтра
"hits": [
{
"_index": "cpp",
"_type": "_doc",
"_id": "4",
"_score": 0.0, --> notice score is 0.
"_source": {
"title": "c"
}
}
]