blob: 12e127cc08db08e9259f4fb7150cbc4a26408882 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.3"/>
<title>Lucene.Net: Lucene.Net.Util.FieldCacheSanityChecker Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="lucene-net-icon-128x128.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">Lucene.Net
&#160;<span id="projectnumber">3.0.3</span>
</div>
<div id="projectbrief">Lucene.Net is a .NET port of the Java Lucene Indexing Library</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.3 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="Index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Packages</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Properties</a></div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespace_lucene.html">Lucene</a></li><li class="navelem"><a class="el" href="namespace_lucene_1_1_net.html">Net</a></li><li class="navelem"><a class="el" href="namespace_lucene_1_1_net_1_1_util.html">Util</a></li><li class="navelem"><a class="el" href="class_lucene_1_1_net_1_1_util_1_1_field_cache_sanity_checker.html">FieldCacheSanityChecker</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="class_lucene_1_1_net_1_1_util_1_1_field_cache_sanity_checker-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">Lucene.Net.Util.FieldCacheSanityChecker Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Provides methods for sanity checking that entries in the FieldCache are not wasteful or inconsistent. <a class="el" href="namespace_lucene.html">Lucene</a> 2.9 Introduced numerous enhancements into how the FieldCache is used by the low levels of <a class="el" href="namespace_lucene.html">Lucene</a> searching (for Sorting and ValueSourceQueries) to improve both the speed for Sorting, as well as reopening of IndexReaders. But these changes have shifted the usage of FieldCache from "top level" IndexReaders (frequently a MultiReader or DirectoryReader) down to the leaf level SegmentReaders. As a result, existing applications that directly access the FieldCache may find RAM usage increase significantly when upgrading to 2.9 or Later. This class provides an API for these applications (or their Unit tests) to check at run time if the FieldCache contains "insane" usages of the FieldCache. <b>EXPERIMENTAL API:</b> This API is considered extremely advanced and experimental. It may be removed or altered w/o warning in future releases of <a class="el" href="namespace_lucene.html">Lucene</a>.
<a href="class_lucene_1_1_net_1_1_util_1_1_field_cache_sanity_checker.html#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lucene_1_1_net_1_1_util_1_1_field_cache_sanity_checker_1_1_insanity.html">Insanity</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Simple container for a collection of related CacheEntry objects that in conjunction with eachother represent some "insane" usage of the FieldCache. <a href="class_lucene_1_1_net_1_1_util_1_1_field_cache_sanity_checker_1_1_insanity.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lucene_1_1_net_1_1_util_1_1_field_cache_sanity_checker_1_1_insanity_type.html">InsanityType</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An Enumaration of the differnet types of "insane" behavior that may be detected in a FieldCache. <a href="class_lucene_1_1_net_1_1_util_1_1_field_cache_sanity_checker_1_1_insanity_type.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a3ddbbcf584f604b157caa8b1756ce35c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lucene_1_1_net_1_1_util_1_1_field_cache_sanity_checker.html#a3ddbbcf584f604b157caa8b1756ce35c">FieldCacheSanityChecker</a> ()</td></tr>
<tr class="separator:a3ddbbcf584f604b157caa8b1756ce35c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5554d41add8cc67e5dbfc4f3c5d3ad8b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lucene_1_1_net_1_1_util_1_1_field_cache_sanity_checker.html#a5554d41add8cc67e5dbfc4f3c5d3ad8b">SetRamUsageEstimator</a> (<a class="el" href="class_lucene_1_1_net_1_1_util_1_1_ram_usage_estimator.html">RamUsageEstimator</a> r)</td></tr>
<tr class="memdesc:a5554d41add8cc67e5dbfc4f3c5d3ad8b"><td class="mdescLeft">&#160;</td><td class="mdescRight">If set, will be used to estimate size for all CacheEntry objects dealt with. <a href="#a5554d41add8cc67e5dbfc4f3c5d3ad8b"></a><br/></td></tr>
<tr class="separator:a5554d41add8cc67e5dbfc4f3c5d3ad8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ab137f955b8837a762881a10cf9771e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_lucene_1_1_net_1_1_util_1_1_field_cache_sanity_checker_1_1_insanity.html">Insanity</a>[]&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lucene_1_1_net_1_1_util_1_1_field_cache_sanity_checker.html#a8ab137f955b8837a762881a10cf9771e">Check</a> (params <a class="el" href="_field_cache_sanity_checker_8cs.html#a05df5ab03f0f06e160c237beadddc8ee">CacheEntry</a>[] cacheEntries)</td></tr>
<tr class="memdesc:a8ab137f955b8837a762881a10cf9771e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests a CacheEntry[] for indication of "insane" cache usage. NOTE:FieldCache CreationPlaceholder objects are ignored. (:TODO: is this a bad idea? are we masking a real problem?) <a href="#a8ab137f955b8837a762881a10cf9771e"></a><br/></td></tr>
<tr class="separator:a8ab137f955b8837a762881a10cf9771e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a4bd1b44a6dfc4ce21a1f35c3d16b5880"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="class_lucene_1_1_net_1_1_util_1_1_field_cache_sanity_checker_1_1_insanity.html">Insanity</a>[]&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lucene_1_1_net_1_1_util_1_1_field_cache_sanity_checker.html#a4bd1b44a6dfc4ce21a1f35c3d16b5880">CheckSanity</a> (<a class="el" href="_numeric_field_8cs.html#ae3da15e75141cdc8cab8107899059bb1">FieldCache</a> cache)</td></tr>
<tr class="memdesc:a4bd1b44a6dfc4ce21a1f35c3d16b5880"><td class="mdescLeft">&#160;</td><td class="mdescRight">Quick and dirty convenience method <a href="#a4bd1b44a6dfc4ce21a1f35c3d16b5880"></a><br/></td></tr>
<tr class="separator:a4bd1b44a6dfc4ce21a1f35c3d16b5880"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae68aaedbe031c2807aff3e1064aaee6b"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="class_lucene_1_1_net_1_1_util_1_1_field_cache_sanity_checker_1_1_insanity.html">Insanity</a>[]&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lucene_1_1_net_1_1_util_1_1_field_cache_sanity_checker.html#ae68aaedbe031c2807aff3e1064aaee6b">CheckSanity</a> (params <a class="el" href="_field_cache_sanity_checker_8cs.html#a05df5ab03f0f06e160c237beadddc8ee">CacheEntry</a>[] cacheEntries)</td></tr>
<tr class="memdesc:ae68aaedbe031c2807aff3e1064aaee6b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Quick and dirty convenience method that instantiates an instance with "good defaults" and uses it to test the CacheEntrys <a href="#ae68aaedbe031c2807aff3e1064aaee6b"></a><br/></td></tr>
<tr class="separator:ae68aaedbe031c2807aff3e1064aaee6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Provides methods for sanity checking that entries in the FieldCache are not wasteful or inconsistent. </p>
<p><a class="el" href="namespace_lucene.html">Lucene</a> 2.9 Introduced numerous enhancements into how the FieldCache is used by the low levels of <a class="el" href="namespace_lucene.html">Lucene</a> searching (for Sorting and ValueSourceQueries) to improve both the speed for Sorting, as well as reopening of IndexReaders. But these changes have shifted the usage of FieldCache from "top level" IndexReaders (frequently a MultiReader or DirectoryReader) down to the leaf level SegmentReaders. As a result, existing applications that directly access the FieldCache may find RAM usage increase significantly when upgrading to 2.9 or Later. This class provides an API for these applications (or their Unit tests) to check at run time if the FieldCache contains "insane" usages of the FieldCache. </p>
<p><b>EXPERIMENTAL API:</b> This API is considered extremely advanced and experimental. It may be removed or altered w/o warning in future releases of <a class="el" href="namespace_lucene.html">Lucene</a>. </p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="_field_cache_sanity_checker_8cs.html#ae3da15e75141cdc8cab8107899059bb1">FieldCache</a></dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="class_lucene_1_1_net_1_1_util_1_1_field_cache_sanity_checker_1_1_insanity.html" title="Simple container for a collection of related CacheEntry objects that in conjunction with eachother re...">FieldCacheSanityChecker.Insanity</a></dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="class_lucene_1_1_net_1_1_util_1_1_field_cache_sanity_checker_1_1_insanity_type.html" title="An Enumaration of the differnet types of &quot;insane&quot; behavior that may be detected in a FieldCache...">FieldCacheSanityChecker.InsanityType</a></dd></dl>
<p>Definition at line <a class="el" href="_field_cache_sanity_checker_8cs_source.html#l00056">56</a> of file <a class="el" href="_field_cache_sanity_checker_8cs_source.html">FieldCacheSanityChecker.cs</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a3ddbbcf584f604b157caa8b1756ce35c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">Lucene.Net.Util.FieldCacheSanityChecker.FieldCacheSanityChecker </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_field_cache_sanity_checker_8cs_source.html#l00060">60</a> of file <a class="el" href="_field_cache_sanity_checker_8cs_source.html">FieldCacheSanityChecker.cs</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a8ab137f955b8837a762881a10cf9771e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="class_lucene_1_1_net_1_1_util_1_1_field_cache_sanity_checker_1_1_insanity.html">Insanity</a> [] Lucene.Net.Util.FieldCacheSanityChecker.Check </td>
<td>(</td>
<td class="paramtype">params <a class="el" href="_field_cache_sanity_checker_8cs.html#a05df5ab03f0f06e160c237beadddc8ee">CacheEntry</a>[]&#160;</td>
<td class="paramname"><em>cacheEntries</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Tests a CacheEntry[] for indication of "insane" cache usage. NOTE:FieldCache CreationPlaceholder objects are ignored. (:TODO: is this a bad idea? are we masking a real problem?) </p>
<p>Definition at line <a class="el" href="_field_cache_sanity_checker_8cs_source.html#l00101">101</a> of file <a class="el" href="_field_cache_sanity_checker_8cs_source.html">FieldCacheSanityChecker.cs</a>.</p>
</div>
</div>
<a class="anchor" id="a4bd1b44a6dfc4ce21a1f35c3d16b5880"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="class_lucene_1_1_net_1_1_util_1_1_field_cache_sanity_checker_1_1_insanity.html">Insanity</a> [] Lucene.Net.Util.FieldCacheSanityChecker.CheckSanity </td>
<td>(</td>
<td class="paramtype"><a class="el" href="_numeric_field_8cs.html#ae3da15e75141cdc8cab8107899059bb1">FieldCache</a>&#160;</td>
<td class="paramname"><em>cache</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Quick and dirty convenience method</p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="class_lucene_1_1_net_1_1_util_1_1_field_cache_sanity_checker.html#a8ab137f955b8837a762881a10cf9771e" title="Tests a CacheEntry[] for indication of &quot;insane&quot; cache usage. NOTE:FieldCache CreationPlaceholder obje...">Check</a></dd></dl>
<p>Definition at line <a class="el" href="_field_cache_sanity_checker_8cs_source.html#l00076">76</a> of file <a class="el" href="_field_cache_sanity_checker_8cs_source.html">FieldCacheSanityChecker.cs</a>.</p>
</div>
</div>
<a class="anchor" id="ae68aaedbe031c2807aff3e1064aaee6b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="class_lucene_1_1_net_1_1_util_1_1_field_cache_sanity_checker_1_1_insanity.html">Insanity</a> [] Lucene.Net.Util.FieldCacheSanityChecker.CheckSanity </td>
<td>(</td>
<td class="paramtype">params <a class="el" href="_field_cache_sanity_checker_8cs.html#a05df5ab03f0f06e160c237beadddc8ee">CacheEntry</a>[]&#160;</td>
<td class="paramname"><em>cacheEntries</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Quick and dirty convenience method that instantiates an instance with "good defaults" and uses it to test the CacheEntrys </p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="class_lucene_1_1_net_1_1_util_1_1_field_cache_sanity_checker.html#a8ab137f955b8837a762881a10cf9771e" title="Tests a CacheEntry[] for indication of &quot;insane&quot; cache usage. NOTE:FieldCache CreationPlaceholder obje...">Check</a></dd></dl>
<p>Definition at line <a class="el" href="_field_cache_sanity_checker_8cs_source.html#l00086">86</a> of file <a class="el" href="_field_cache_sanity_checker_8cs_source.html">FieldCacheSanityChecker.cs</a>.</p>
</div>
</div>
<a class="anchor" id="a5554d41add8cc67e5dbfc4f3c5d3ad8b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void Lucene.Net.Util.FieldCacheSanityChecker.SetRamUsageEstimator </td>
<td>(</td>
<td class="paramtype"><a class="el" href="class_lucene_1_1_net_1_1_util_1_1_ram_usage_estimator.html">RamUsageEstimator</a>&#160;</td>
<td class="paramname"><em>r</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>If set, will be used to estimate size for all CacheEntry objects dealt with. </p>
<p>Definition at line <a class="el" href="_field_cache_sanity_checker_8cs_source.html#l00067">67</a> of file <a class="el" href="_field_cache_sanity_checker_8cs_source.html">FieldCacheSanityChecker.cs</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>core/Util/<a class="el" href="_field_cache_sanity_checker_8cs_source.html">FieldCacheSanityChecker.cs</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Jan 3 2013 02:12:59 for Lucene.Net by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.3
</small></address>
</body>
</html>