Может кто-нибудь объяснить, как ScoreSum рассчитывается при подсчете очков - PullRequest
3 голосов
/ 16 мая 2019

Я вижу, что scoreSum используется в формуле qry:score для вычисления оценки релевантности .

Как рассчитывается scoreSum?

МожетКто-нибудь объяснит, что такое scoreSum и как рассчитывается?

<qry:score 
  formula="(256*scoreSum/weightSum)+(256*qualityWeight*documentQuality)" 
  computation="(256*12/1)+(256*1*0)">3072</qry:score>

1 Ответ

1 голос
/ 16 мая 2019

scoreSum - сумма всех оценок по вашему запросу.См. Следующий простой пример:

xquery version "1.0-ml";

let $doc := <test>dog cat fish</test>

return xdmp:document-insert("test.xml", $doc);

for $i in cts:search(doc(), cts:word-query("dog cat fish"), "relevance-trace")
return cts:relevance-info($i)

Что приводит к следующему выводу:

<qry:relevance-info xmlns:qry="http://marklogic.com/cts/query">
  <qry:score formula="(256*scoreSum/weightSum)+(256*qualityWeight*documentQuality)" computation="(256*360/2)+(256*1*0)">46080</qry:score>
  <qry:confidence formula="sqrt(score/(256*8*maxlogtf*maxidf))" computation="sqrt(46080/(256*8*18*log(29)))">0.6092764</qry:confidence>
  <qry:fitness formula="sqrt(score/(256*8*maxlogtf*avgidf))" computation="sqrt(46080/(256*8*18*(5.3483/2)))">0.6836947</qry:fitness>
  <qry:uri>test.xml</qry:uri>
  <qry:path>fn:doc("test.xml")</qry:path>
  <qry:and>
    <qry:score formula="scoreSum" computation="136+224+0">360</qry:score>
    <qry:term weight="2.125">
      <qry:score formula="8*weight*logtf" computation="17*8">136</qry:score>
      <qry:key>13246596259210807488</qry:key>
      <qry:annotation>pair(word("dog"),word("cat"))</qry:annotation>
    </qry:term>
    <qry:term weight="3.5">
      <qry:score formula="8*weight*logtf" computation="28*8">224</qry:score>
      <qry:key>3660582207022472029</qry:key>
      <qry:annotation>pair(word("cat"),word("fish"))</qry:annotation>
    </qry:term>
    <qry:word>...</qry:word>
</qry:and>

Как вы можете видеть scoreSum - это сумма (136+224+0) термина "оценка"(136) pair(word("dog"),word("cat")) и pair(word("cat"),word("fish")) (224).

Вывод может отличаться в вашей среде в зависимости от настроек индекса и документов в вашей базе данных.Этот вывод находится в другой пустой базе данных и с включенным fast phrase searches (поэтому есть пара терминов).Если задан только один словесный запрос, вычисление ScoreSum опускается в выводе и scoreSum == score of your term.

...