Sophie

Sophie

distrib > Fedora > 13 > i386 > by-pkgid > 2dc7ae7102ce788eb8a15dec0caf7708 > files > 171

xapian-core-devel-1.0.21-1.fc13.i686.rpm

<!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&nbsp;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&nbsp;Pages</span></a></li>
  </ul>
</div>
<div class="tabs">
  <ul>
    <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
    <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    <li><a href="functions.html"><span>Class&nbsp;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">&nbsp;</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">&nbsp;</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> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXapian_1_1TradWeight.html#edb79faee3e3bae733024f9743a58a17">clone</a> () const</td></tr>

<tr><td class="mdescLeft">&nbsp;</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&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXapian_1_1TradWeight.html#63160e95079b2b84e41b3b34bef6badd">name</a> () const</td></tr>

<tr><td class="mdescLeft">&nbsp;</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&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXapian_1_1TradWeight.html#d6b38776d8e6f2b09e53aef2397b7198">serialise</a> () const</td></tr>

<tr><td class="mdescLeft">&nbsp;</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> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXapian_1_1TradWeight.html#ee8a8d85ef74ebf75b40ad2adea8ab23">unserialise</a> (const std::string &amp;s) const</td></tr>

<tr><td class="mdescLeft">&nbsp;</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>&nbsp;</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">&nbsp;</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>&nbsp;</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">&nbsp;</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>&nbsp;</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">&nbsp;</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>&nbsp;</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">&nbsp;</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&nbsp;</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">&nbsp;</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 &amp; 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&nbsp;</td>
          <td class="paramname"> <em>k</em>          </td>
          <td>&nbsp;)&nbsp;</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>&nbsp;</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>&nbsp;)&nbsp;</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>&nbsp;)&nbsp;</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>&nbsp;)&nbsp;</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 &amp;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 &amp;&nbsp;</td>
          <td class="paramname"> <em>s</em>          </td>
          <td>&nbsp;)&nbsp;</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>&nbsp;</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>&nbsp;</td>
          <td class="paramname"> <em>len</em></td><td>&nbsp;</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>&nbsp;</td><td>the within document frequency of the term. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</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>&nbsp;)&nbsp;</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>&nbsp;</td>
          <td class="paramname"> <em>len</em>          </td>
          <td>&nbsp;)&nbsp;</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>&nbsp;</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>&nbsp;)&nbsp;</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>&nbsp;)&nbsp;</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>