<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>Xapian: API Documentation: xapian-core: Xapian::TradWeight Class Reference</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css"> </head> <body bgcolor="#ffffff"> <!-- Generated by Doxygen 1.5.2 --> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li class="current"><a href="classes.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="classes.html"><span>Alphabetical List</span></a></li> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> <div class="nav"> <a class="el" href="namespaceXapian.html">Xapian</a>::<a class="el" href="classXapian_1_1TradWeight.html">TradWeight</a></div> <h1>Xapian::TradWeight Class Reference</h1><!-- doxytag: class="Xapian::TradWeight" --><!-- doxytag: inherits="Xapian::Weight" -->Traditional probabilistic weighting scheme. <a href="#_details">More...</a> <p> Inheritance diagram for Xapian::TradWeight:<p><center><img src="classXapian_1_1TradWeight__inherit__graph.png" border="0" usemap="#Xapian_1_1TradWeight__inherit__map" alt="Inheritance graph"></center> <map name="Xapian_1_1TradWeight__inherit__map"> <area shape="rect" href="classXapian_1_1Weight.html" title="Abstract base class for weighting schemes." alt="" coords="17,7,132,33"></map> <center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><a href="classXapian_1_1TradWeight-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0"> <tr><td></td></tr> <tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classXapian_1_1TradWeight.html#c4dc8e4d276ea29d4361984a91127bf6">TradWeight</a> (double k)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Construct a <a class="el" href="classXapian_1_1TradWeight.html" title="Traditional probabilistic weighting scheme.">TradWeight</a>. <a href="#c4dc8e4d276ea29d4361984a91127bf6"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classXapian_1_1TradWeight.html">TradWeight</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classXapian_1_1TradWeight.html#edb79faee3e3bae733024f9743a58a17">clone</a> () const</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Return a new weight object of this type. <a href="#edb79faee3e3bae733024f9743a58a17"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="classXapian_1_1TradWeight.html#63160e95079b2b84e41b3b34bef6badd">name</a> () const</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Name of the weighting scheme. <a href="#63160e95079b2b84e41b3b34bef6badd"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="classXapian_1_1TradWeight.html#d6b38776d8e6f2b09e53aef2397b7198">serialise</a> () const</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Serialise object parameters into a string. <a href="#d6b38776d8e6f2b09e53aef2397b7198"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classXapian_1_1TradWeight.html">TradWeight</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classXapian_1_1TradWeight.html#ee8a8d85ef74ebf75b40ad2adea8ab23">unserialise</a> (const std::string &s) const</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Create object given string serialisation returned by <a class="el" href="classXapian_1_1TradWeight.html#d6b38776d8e6f2b09e53aef2397b7198" title="Serialise object parameters into a string.">serialise()</a>. <a href="#ee8a8d85ef74ebf75b40ad2adea8ab23"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="namespaceXapian.html#ee1bece7207c349621963d7f584dd98b">Xapian::weight</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classXapian_1_1TradWeight.html#9a377b20d0a9b4347fe1aeed550e20b3">get_sumpart</a> (<a class="el" href="namespaceXapian.html#3261017447607738e49eae6a2a4f5eec">Xapian::termcount</a> wdf, <a class="el" href="namespaceXapian.html#6c1c4bfd0b540caccbb5179976ebf792">Xapian::doclength</a> len) const</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get a weight which is part of the sum over terms being performed. <a href="#9a377b20d0a9b4347fe1aeed550e20b3"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="namespaceXapian.html#ee1bece7207c349621963d7f584dd98b">Xapian::weight</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classXapian_1_1TradWeight.html#f122c48a410974d24a408acccf2a6100">get_maxpart</a> () const</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the maximum value that <a class="el" href="classXapian_1_1TradWeight.html#9a377b20d0a9b4347fe1aeed550e20b3" title="Get a weight which is part of the sum over terms being performed.">get_sumpart()</a> may return. <a href="#f122c48a410974d24a408acccf2a6100"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="namespaceXapian.html#ee1bece7207c349621963d7f584dd98b">Xapian::weight</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classXapian_1_1TradWeight.html#5f7a6a15698e5da5113e47774f3e4d32">get_sumextra</a> (<a class="el" href="namespaceXapian.html#6c1c4bfd0b540caccbb5179976ebf792">Xapian::doclength</a> len) const</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get an extra weight for a document to add to the sum calculated over the query terms. <a href="#5f7a6a15698e5da5113e47774f3e4d32"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="namespaceXapian.html#ee1bece7207c349621963d7f584dd98b">Xapian::weight</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classXapian_1_1TradWeight.html#98b79b4b899551b337978a9ec0d3e76e">get_maxextra</a> () const</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the maximum value that <a class="el" href="classXapian_1_1TradWeight.html#5f7a6a15698e5da5113e47774f3e4d32" title="Get an extra weight for a document to add to the sum calculated over the query terms...">get_sumextra()</a> may return. <a href="#98b79b4b899551b337978a9ec0d3e76e"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classXapian_1_1TradWeight.html#82a32a5da1b45342d2089027b97ea79b">get_sumpart_needs_doclength</a> () const</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">return false if the weight object doesn't need doclength <a href="#82a32a5da1b45342d2089027b97ea79b"></a><br></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> Traditional probabilistic weighting scheme. <p> This class implements the Traditional Probabilistic Weighting scheme, as described by the early papers on Probabilistic Retrieval. BM25 generally gives better results.<p> The Traditional weighting scheme formula is <p class="formulaDsp"> <img class="formulaDsp" alt="\[ \sum_{t}\frac{f_{t,d}}{k.L_{d}+f_{t,d}}.w_{t} \]" src="form_10.png"> <p> where<ul> <li><img class="formulaInl" alt="$w_{t}$" src="form_1.png"> is the termweight of term t</li><li><img class="formulaInl" alt="$f_{t,d}$" src="form_2.png"> is the within document frequency of term t in document d</li><li><img class="formulaInl" alt="$L_{d}$" src="form_4.png"> is the normalised length of document d</li><li><img class="formulaInl" alt="$k$" src="form_11.png"> is a user specifiable parameter</li></ul> <p> TradWeight(k) is equivalent to BM25Weight(k, 0, 0, 1, 0), except that the latter returns weights (k+1) times larger. <p> <hr><h2>Constructor & Destructor Documentation</h2> <a class="anchor" name="c4dc8e4d276ea29d4361984a91127bf6"></a><!-- doxytag: member="Xapian::TradWeight::TradWeight" ref="c4dc8e4d276ea29d4361984a91127bf6" args="(double k)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Xapian::TradWeight::TradWeight </td> <td>(</td> <td class="paramtype">double </td> <td class="paramname"> <em>k</em> </td> <td> ) </td> <td width="100%"><code> [inline, explicit]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Construct a <a class="el" href="classXapian_1_1TradWeight.html" title="Traditional probabilistic weighting scheme.">TradWeight</a>. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>k</em> </td><td>parameter governing the importance of within document frequency and document length - any non-negative number (0 meaning to ignore wdf and doc length when calculating weights). Default is 1. </td></tr> </table> </dl> </div> </div><p> <hr><h2>Member Function Documentation</h2> <a class="anchor" name="edb79faee3e3bae733024f9743a58a17"></a><!-- doxytag: member="Xapian::TradWeight::clone" ref="edb79faee3e3bae733024f9743a58a17" args="() const" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classXapian_1_1TradWeight.html">TradWeight</a>* Xapian::TradWeight::clone </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> const<code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Return a new weight object of this type. <p> A subclass called FooWeight taking parameters param1 and param2 should implement this as:<p> virtual FooWeight * <a class="el" href="classXapian_1_1TradWeight.html#edb79faee3e3bae733024f9743a58a17" title="Return a new weight object of this type.">clone() const</a> { return new FooWeight(param1, param2); } <p> Implements <a class="el" href="classXapian_1_1Weight.html">Xapian::Weight</a>. </div> </div><p> <a class="anchor" name="63160e95079b2b84e41b3b34bef6badd"></a><!-- doxytag: member="Xapian::TradWeight::name" ref="63160e95079b2b84e41b3b34bef6badd" args="() const" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::string Xapian::TradWeight::name </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> const<code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Name of the weighting scheme. <p> If the subclass is called FooWeight, this should return "Foo". <p> Implements <a class="el" href="classXapian_1_1Weight.html#b0a873c16f02bcf9ea54b632b7c8600a">Xapian::Weight</a>. </div> </div><p> <a class="anchor" name="d6b38776d8e6f2b09e53aef2397b7198"></a><!-- doxytag: member="Xapian::TradWeight::serialise" ref="d6b38776d8e6f2b09e53aef2397b7198" args="() const" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::string Xapian::TradWeight::serialise </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> const<code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Serialise object parameters into a string. <p> <p> Implements <a class="el" href="classXapian_1_1Weight.html#b2ff0584c32e9db9f52dafed9e4e2bcf">Xapian::Weight</a>. </div> </div><p> <a class="anchor" name="ee8a8d85ef74ebf75b40ad2adea8ab23"></a><!-- doxytag: member="Xapian::TradWeight::unserialise" ref="ee8a8d85ef74ebf75b40ad2adea8ab23" args="(const std::string &s) const" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classXapian_1_1TradWeight.html">TradWeight</a>* Xapian::TradWeight::unserialise </td> <td>(</td> <td class="paramtype">const std::string & </td> <td class="paramname"> <em>s</em> </td> <td> ) </td> <td width="100%"> const<code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Create object given string serialisation returned by <a class="el" href="classXapian_1_1TradWeight.html#d6b38776d8e6f2b09e53aef2397b7198" title="Serialise object parameters into a string.">serialise()</a>. <p> <p> Implements <a class="el" href="classXapian_1_1Weight.html#c6948bf58e52443ca6c8d5547bf14d14">Xapian::Weight</a>. </div> </div><p> <a class="anchor" name="9a377b20d0a9b4347fe1aeed550e20b3"></a><!-- doxytag: member="Xapian::TradWeight::get_sumpart" ref="9a377b20d0a9b4347fe1aeed550e20b3" args="(Xapian::termcount wdf, Xapian::doclength len) const" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="namespaceXapian.html#ee1bece7207c349621963d7f584dd98b">Xapian::weight</a> Xapian::TradWeight::get_sumpart </td> <td>(</td> <td class="paramtype"><a class="el" href="namespaceXapian.html#3261017447607738e49eae6a2a4f5eec">Xapian::termcount</a> </td> <td class="paramname"> <em>wdf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="namespaceXapian.html#6c1c4bfd0b540caccbb5179976ebf792">Xapian::doclength</a> </td> <td class="paramname"> <em>len</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"> const<code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Get a weight which is part of the sum over terms being performed. <p> This returns a weight for a given term and document. These weights are summed to give a total weight for the document.<p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>wdf</em> </td><td>the within document frequency of the term. </td></tr> <tr><td valign="top"></td><td valign="top"><em>len</em> </td><td>the (unnormalised) document length. </td></tr> </table> </dl> <p> Implements <a class="el" href="classXapian_1_1Weight.html#35ac7463961ccfcfa7ff6abc170135f8">Xapian::Weight</a>. </div> </div><p> <a class="anchor" name="f122c48a410974d24a408acccf2a6100"></a><!-- doxytag: member="Xapian::TradWeight::get_maxpart" ref="f122c48a410974d24a408acccf2a6100" args="() const" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="namespaceXapian.html#ee1bece7207c349621963d7f584dd98b">Xapian::weight</a> Xapian::TradWeight::get_maxpart </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> const<code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Gets the maximum value that <a class="el" href="classXapian_1_1TradWeight.html#9a377b20d0a9b4347fe1aeed550e20b3" title="Get a weight which is part of the sum over terms being performed.">get_sumpart()</a> may return. <p> This is used in optimising searches, by having the postlist tree decay appropriately when parts of it can have limited, or no, further effect. <p> Implements <a class="el" href="classXapian_1_1Weight.html#029bd952184c78f75126227de336f3f6">Xapian::Weight</a>. </div> </div><p> <a class="anchor" name="5f7a6a15698e5da5113e47774f3e4d32"></a><!-- doxytag: member="Xapian::TradWeight::get_sumextra" ref="5f7a6a15698e5da5113e47774f3e4d32" args="(Xapian::doclength len) const" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="namespaceXapian.html#ee1bece7207c349621963d7f584dd98b">Xapian::weight</a> Xapian::TradWeight::get_sumextra </td> <td>(</td> <td class="paramtype"><a class="el" href="namespaceXapian.html#6c1c4bfd0b540caccbb5179976ebf792">Xapian::doclength</a> </td> <td class="paramname"> <em>len</em> </td> <td> ) </td> <td width="100%"> const<code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Get an extra weight for a document to add to the sum calculated over the query terms. <p> This returns a weight for a given document, and is used by some weighting schemes to account for influence such as document length.<p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>len</em> </td><td>the (unnormalised) document length. </td></tr> </table> </dl> <p> Implements <a class="el" href="classXapian_1_1Weight.html#9fec5777ea998c2925b0960e3d9ca31c">Xapian::Weight</a>. </div> </div><p> <a class="anchor" name="98b79b4b899551b337978a9ec0d3e76e"></a><!-- doxytag: member="Xapian::TradWeight::get_maxextra" ref="98b79b4b899551b337978a9ec0d3e76e" args="() const" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="namespaceXapian.html#ee1bece7207c349621963d7f584dd98b">Xapian::weight</a> Xapian::TradWeight::get_maxextra </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> const<code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Gets the maximum value that <a class="el" href="classXapian_1_1TradWeight.html#5f7a6a15698e5da5113e47774f3e4d32" title="Get an extra weight for a document to add to the sum calculated over the query terms...">get_sumextra()</a> may return. <p> This is used in optimising searches. <p> Implements <a class="el" href="classXapian_1_1Weight.html#158796278206334879e4861d7ebc1040">Xapian::Weight</a>. </div> </div><p> <a class="anchor" name="82a32a5da1b45342d2089027b97ea79b"></a><!-- doxytag: member="Xapian::TradWeight::get_sumpart_needs_doclength" ref="82a32a5da1b45342d2089027b97ea79b" args="() const" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool Xapian::TradWeight::get_sumpart_needs_doclength </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> const<code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> return false if the weight object doesn't need doclength <p> <p> Reimplemented from <a class="el" href="classXapian_1_1Weight.html#057ce24c2d3a54dc6a6b3127d064ce9f">Xapian::Weight</a>. </div> </div><p> <hr>The documentation for this class was generated from the following file:<ul> <li>xapian/<a class="el" href="enquire_8h.html">enquire.h</a></ul> <hr> <address><small> Documentation for Xapian (version 1.0.21).<br> Generated on 18 Jun 2010 by <a href="http://www.doxygen.org/">Doxygen 1.5.2</a>. </small></address> </body> </html>