# 为什么相同的文本搜索结果的\_score不同？

**URL:** <https://discuss.elastic.co/t/-score/78135>\
**Category:** 中文提问与讨论\
**Created:** [March 10, 2017, 10:59am UTC](https://discuss.elastic.co/t/-score/78135 "2017-03-10T10:59:42Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![watson](https://avatars.discourse-cdn.com/v4/letter/w/ce73a5/32.png) [@watson](https://discuss.elastic.co/u/watson)\
**Post date:** [March 10, 2017, 10:59am UTC](https://discuss.elastic.co/t/-score/78135/1 "2017-03-10T10:59:42Z")

</div>

\*\*Elasticsearch version2.3.3:

Plugins installed: [head,ik]

\*\*JVM versionopenjdk version "1.8.0\_111":

\*\*OS versionCentOS release 6.8 (Final):

+++++++++++++++++++++++++++++++++++++++++  
my mapping：  
"mappings": {  
"weixinMedia": {  
"\_all": {  
"analyzer": "ik\_max\_word"  
},  
"properties": {  
"mediaScore": {  
"type": "float"  
},  
"weixinId": {  
"type": "string"  
},  
"pi": {  
"type": "long"  
},  
"mediaNameLen": {  
"type": "integer"  
},  
"pmid": {  
"index": "not\_analyzed",  
"type": "string"  
},  
"mediaName": {  
"analyzer": "ik\_max\_word",  
"term\_vector": "with\_positions\_offsets",  
"boost": 2,  
"type": "string"  
}  
}  
},  
+++++++++++++++++++++++++++++++++++++++++  
my request:  
{  
"track\_scores" : "true",  
"sort" : {  
"\_script" : {  
"type" : "number",  
"script" : "\_score+(doc.pi.value/100.0)",  
"order" : "desc"  
}  
},  
"query" : {  
"match\_phrase" : { "mediaName" : "微美食" }  
}  
}  
+++++++++++++++++++++++++++++++++++++++++  
expect result:  
{  
"\_index" : "media\_b",  
"\_type" : "weixinMedia",  
"\_id" : "MzA5NTgyOTUyNA==",  
"\_score" : 17.916512,  
"\_source" : {  
"mediaName" : "微美食",  
"pmid" : "MzA5NTgyOTUyNA==",  
"mediaNameLen" : 3,  
"mediaScore" : 2.2,  
"pi" : 600  
},  
"sort" : [23.91651153564453]  
}, {  
"\_index" : "media\_b",  
"\_type" : "weixinMedia",  
"\_id" : "MjM5NzMxOTM4MQ==",  
"\_score" : 17.916512,  
"\_source" : {  
"mediaName" : "微美食",  
"pmid" : "MjM5NzMxOTM4MQ==",  
"mediaNameLen" : 3,  
"mediaScore" : 2.062,  
"pi" : 506  
},  
"sort" : [22.97651153564453]  
}, {  
"\_index" : "media\_b",  
"\_type" : "weixinMedia",  
"\_id" : "MjM5OTg0OTcwMg==",  
"\_score" : 17.916512,  
"\_source" : {  
"mediaName" : "微美食西安",  
"pmid" : "MjM5OTg0OTcwMg==",  
"mediaNameLen" : 5,  
"mediaScore" : 2.308,  
"pi" : 629  
},  
"sort" : [24.20651153564453]  
},  
+++++++++++++++++++++++++++++++++++++++++

actual result with explain:  
{  
"\_shard" : 4,  
"\_node" : "uSTOGHNUSjGNFweC7RynRQ",  
"\_index" : "media\_b",  
"\_type" : "weixinMedia",  
"\_id" : "MjM5OTg0OTcwMg==",  
"\_score" : 17.916512,  
"\_source" : {  
"mediaName" : "微美食西安",  
"pmid" : "MjM5OTg0OTcwMg==",  
"mediaNameLen" : 5,  
"mediaScore" : 2.308,  
"pi" : 629  
},  
"sort" : [24.20651153564453],  
"\_explanation" : {  
"value" : 17.916512,  
"description" : "sum of:",  
"details" : [ {  
"value" : 17.916512,  
"description" : "weight(mediaName:"微 美食 食" in 161368) [PerFieldSimilarity], result of:",  
"details" : [ {  
"value" : 17.916512,  
"description" : "fieldWeight in 161368, product of:",  
"details" : [ {  
"value" : 1.0,  
"description" : "tf(freq=1.0), with freq of:",  
"details" : [ {  
"value" : 1.0,  
"description" : "phraseFreq=1.0",  
"details" : []  
} ]  
}, {  
"value" : 17.916512,  
"description" : "idf(), sum of:",  
"details" : [ {  
"value" : 4.92588,  
"description" : "idf(docFreq=9932, maxDocs=503580)",  
"details" : []  
}, {  
"value" : 7.0545344,  
"description" : "idf(docFreq=1181, maxDocs=503580)",  
"details" : []  
}, {  
"value" : 5.9360976,  
"description" : "idf(docFreq=3616, maxDocs=503580)",  
"details" : []

"value" : 1.0,  
"description" : "fieldNorm(doc=161368)",  
"details" : []

"value" : 0.0,  
"description" : "match on required clause, product of:",  
"details" : [ {  
"value" : 0.0,  
"description" : "# clause",  
"details" : []  
}, {  
"value" : 0.055814438,  
"description" : "\_type:weixinMedia, product of:",  
"details" : [ {  
"value" : 1.0,  
"description" : "boost",  
"details" : []  
}, {  
"value" : 0.055814438,  
"description" : "queryNorm",  
"details" : []

"\_shard" : 3,  
"\_node" : "uSTOGHNUSjGNFweC7RynRQ",  
"\_index" : "media\_b",  
"\_type" : "weixinMedia",  
"\_id" : "MzA5NTgyOTUyNA==",  
"\_score" : 17.796759,  
"\_source" : {  
"mediaName" : "微美食",  
"pmid" : "MzA5NTgyOTUyNA==",  
"mediaNameLen" : 3,  
"mediaScore" : 2.2,  
"pi" : 600  
},  
"sort" : [23.7967586517334],  
"\_explanation" : {  
"value" : 17.796759,  
"description" : "sum of:",  
"details" : [ {  
"value" : 17.796759,  
"description" : "weight(mediaName:"微 美食 食" in 120379) [PerFieldSimilarity], result of:",  
"details" : [ {  
"value" : 17.796759,  
"description" : "score(doc=120379,freq=1.0), product of:",  
"details" : [ {  
"value" : 0.99999994,  
"description" : "queryWeight, product of:",  
"details" : [ {  
"value" : 17.79676,  
"description" : "idf(), sum of:",  
"details" : [ {  
"value" : 4.93295,  
"description" : "idf(docFreq=10996, maxDocs=561478)",  
"details" : []

"value" : 6.9785085,  
"description" : "idf(docFreq=1421, maxDocs=561478)",  
"details" : []  
}, {  
"value" : 5.885302,  
"description" : "idf(docFreq=4242, maxDocs=561478)",  
"details" : []

"value" : 0.05619,  
"description" : "queryNorm",  
"details" : []

"value" : 17.79676,  
"description" : "fieldWeight in 120379, product of:",  
"details" : [ {  
"value" : 1.0,  
"description" : "tf(freq=1.0), with freq of:",  
"details" : [ {  
"value" : 1.0,  
"description" : "phraseFreq=1.0",  
"details" : []

"value" : 17.79676,  
"description" : "idf(), sum of:",  
"details" : [ {  
"value" : 4.93295,  
"description" : "idf(docFreq=10996, maxDocs=561478)",  
"details" : []  
}, {  
"value" : 6.9785085,  
"description" : "idf(docFreq=1421, maxDocs=561478)",  
"details" : []  
}, {  
"value" : 5.885302,  
"description" : "idf(docFreq=4242, maxDocs=561478)",  
"details" : []  
} ]  
}, {  
"value" : 1.0,  
"description" : "fieldNorm(doc=120379)",  
"details" : []

"value" : 0.0,  
"description" : "match on required clause, product of:",  
"details" : [ {  
"value" : 0.0,  
"description" : "# clause",  
"details" : []  
}, {  
"value" : 0.05619,  
"description" : "\_type:weixinMedia, product of:",  
"details" : [ {  
"value" : 1.0,  
"description" : "boost",  
"details" : []  
}, {  
"value" : 0.05619,  
"description" : "queryNorm",  
"details" : []

"\_shard" : 4,  
"\_node" : "uSTOGHNUSjGNFweC7RynRQ",  
"\_index" : "media\_b",  
"\_type" : "weixinMedia",  
"\_id" : "MjM5NzMxOTM4MQ==",  
"\_score" : 17.916512,  
"\_source" : {  
"mediaName" : "微美食",  
"pmid" : "MjM5NzMxOTM4MQ==",  
"mediaNameLen" : 3,  
"mediaScore" : 2.062,  
"pi" : 506  
},  
"sort" : [22.97651153564453],  
"\_explanation" : {  
"value" : 17.916512,  
"description" : "sum of:",  
"details" : [ {  
"value" : 17.916512,  
"description" : "weight(mediaName:"微 美食 食" in 364138) [PerFieldSimilarity], result of:",  
"details" : [ {  
"value" : 17.916512,  
"description" : "fieldWeight in 364138, product of:",  
"details" : [ {  
"value" : 1.0,  
"description" : "tf(freq=1.0), with freq of:",  
"details" : [ {  
"value" : 1.0,  
"description" : "phraseFreq=1.0",  
"details" : []  
} ]  
}, {  
"value" : 17.916512,  
"description" : "idf(), sum of:",  
"details" : [ {  
"value" : 4.92588,  
"description" : "idf(docFreq=9932, maxDocs=503580)",  
"details" : []  
}, {  
"value" : 7.0545344,  
"description" : "idf(docFreq=1181, maxDocs=503580)",  
"details" : []  
}, {  
"value" : 5.9360976,  
"description" : "idf(docFreq=3616, maxDocs=503580)",  
"details" : []  
} ]  
}, {  
"value" : 1.0,  
"description" : "fieldNorm(doc=364138)",  
"details" : []

+++++++++++++++++++++++++++++++++++++++++  
不知道为什么搜索出来两个“微美食”的评分不同，评分最高的不是完全匹配的，这个是为什么呢？  
thanks!

---

<div class="post-metadata">

**Author:** ![medcl.net](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/medcl.net/32/4414_2.png) [@medcl.net](https://discuss.elastic.co/u/medcl.net)\
**Post date:** [March 20, 2017, 12:38pm UTC](https://discuss.elastic.co/t/-score/78135/2 "2017-03-20T12:38:49Z")

</div>

> [@watson](#):
>
> "script" : "\_score+(doc.pi.value/100.0)",

你的评分公式不是自己指定了会使用pi这个值么，看返回，这些pi值是不同的

---

<div class="post-metadata">

**Author:** ![watson](https://avatars.discourse-cdn.com/v4/letter/w/ce73a5/32.png) [@watson](https://discuss.elastic.co/u/watson)\
**Post date:** [March 27, 2017, 8:45am UTC](https://discuss.elastic.co/t/-score/78135/3 "2017-03-27T08:45:14Z")

</div>

我说的不同是es得出的\_score值不同，不是我计算的结果。  
es得出的\_score的值为什么不同？  
"index" : "mediab",  
"\_type" : "weixinMedia",  
"\_id" : "MzA5NTgyOTUyNA==",  
" **`_score`**" : 17.916512,  
"\_source" : {  
"mediaName" : "微美食",  
"pmid" : "MzA5NTgyOTUyNA==",  
"mediaNameLen" : 3,  
"mediaScore" : 2.2,  
"pi" : 600  
},  
"sort" : [23.91651153564453]  
}

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [April 24, 2017, 8:45am UTC](https://discuss.elastic.co/t/-score/78135/4 "2017-04-24T08:45:20Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.

---

<div class="post-metadata">

**Author:** ![medcl.net](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/medcl.net/32/4414_2.png) [@medcl.net](https://discuss.elastic.co/u/medcl.net)\
**Post date:** [May 29, 2017, 3:35pm UTC](https://discuss.elastic.co/t/-score/78135/5 "2017-05-29T15:35:15Z")

</div>

> [@watson](#):
>
> "\_shard" : 3,  
> "\_node" : "uSTOGHNUSjGNFweC7RynRQ",  
> "index" : "mediab",  
> "\_type" : "weixinMedia",  
> "\_id" : "MzA5NTgyOTUyNA==",  
> "\_score" : 17.796759,  
> "\_source" : {  
> "mediaName" : "微美食",

1.首先要知道es底层按分片来存储索引，每个索引各种的评分和该shard索引内的倒排表有关，所有每个分片的数据都是不一样的，打出来的分不一定是一样的，尽管他们的term一样。  
2.全文检索针对的是field分词之后的结果，所以他们都匹配上就能查询出来，而评分默认是按各自shard内的评分算出来的。
