blob: c1e0d4c6e21f26befe7c992d8152a66b288ad5b1 [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.Index.MergePolicy 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_index.html">Index</a></li><li class="navelem"><a class="el" href="class_lucene_1_1_net_1_1_index_1_1_merge_policy.html">MergePolicy</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="#pro-methods">Protected Member Functions</a> &#124;
<a href="class_lucene_1_1_net_1_1_index_1_1_merge_policy-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">Lucene.Net.Index.MergePolicy Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
</div><!--header-->
<div class="contents">
<p>Expert: a <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_merge_policy.html" title="Expert: a MergePolicy determines the sequence of primitive merge operations to be used for overall me...">MergePolicy</a> determines the sequence of primitive merge operations to be used for overall merge and optimize operations.
<a href="class_lucene_1_1_net_1_1_index_1_1_merge_policy.html#details">More...</a></p>
<p>Inherits IDisposable.</p>
<p>Inherited by <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_log_merge_policy.html">Lucene.Net.Index.LogMergePolicy</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_index_1_1_merge_policy_1_1_merge_aborted_exception.html">MergeAbortedException</a></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_index_1_1_merge_policy_1_1_merge_exception.html">MergeException</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Exception thrown if there are any problems while executing a merge. <a href="class_lucene_1_1_net_1_1_index_1_1_merge_policy_1_1_merge_exception.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_index_1_1_merge_policy_1_1_merge_specification.html">MergeSpecification</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_merge_policy_1_1_merge_specification.html" title="A MergeSpecification instance provides the information necessary to perform multiple merges...">MergeSpecification</a> instance provides the information necessary to perform multiple merges. It simply contains a list of <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_merge_policy_1_1_one_merge.html" title="OneMerge provides the information necessary to perform an individual primitive merge operation...">OneMerge</a> instances. <a href="class_lucene_1_1_net_1_1_index_1_1_merge_policy_1_1_merge_specification.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_index_1_1_merge_policy_1_1_one_merge.html">OneMerge</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="class_lucene_1_1_net_1_1_index_1_1_merge_policy_1_1_one_merge.html" title="OneMerge provides the information necessary to perform an individual primitive merge operation...">OneMerge</a> provides the information necessary to perform an individual primitive merge operation, resulting in a single new segment. The merge spec includes the subset of segments to be merged as well as whether the new segment should use the compound file format. <a href="class_lucene_1_1_net_1_1_index_1_1_merge_policy_1_1_one_merge.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:a022cab42518ce1ae0b2d3b36c33ef169"><td class="memItemLeft" align="right" valign="top">abstract <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_merge_policy_1_1_merge_specification.html">MergeSpecification</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lucene_1_1_net_1_1_index_1_1_merge_policy.html#a022cab42518ce1ae0b2d3b36c33ef169">FindMerges</a> (<a class="el" href="class_lucene_1_1_net_1_1_index_1_1_segment_infos.html">SegmentInfos</a> segmentInfos)</td></tr>
<tr class="memdesc:a022cab42518ce1ae0b2d3b36c33ef169"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine what set of merge operations are now necessary on the index. <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_index_writer.html" title="An IndexWriter creates and maintains an index. The create argument to the constructor determines whet...">IndexWriter</a> calls this whenever there is a change to the segments. This call is always synchronized on the <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_index_writer.html" title="An IndexWriter creates and maintains an index. The create argument to the constructor determines whet...">IndexWriter</a> instance so only one thread at a time will call this method. <a href="#a022cab42518ce1ae0b2d3b36c33ef169"></a><br/></td></tr>
<tr class="separator:a022cab42518ce1ae0b2d3b36c33ef169"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad6010c4fa62e433c1c3042a666fba62b"><td class="memItemLeft" align="right" valign="top">abstract <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_merge_policy_1_1_merge_specification.html">MergeSpecification</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lucene_1_1_net_1_1_index_1_1_merge_policy.html#ad6010c4fa62e433c1c3042a666fba62b">FindMergesForOptimize</a> (<a class="el" href="class_lucene_1_1_net_1_1_index_1_1_segment_infos.html">SegmentInfos</a> segmentInfos, int maxSegmentCount, ISet&lt; <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_segment_info.html">SegmentInfo</a> &gt; segmentsToOptimize)</td></tr>
<tr class="memdesc:ad6010c4fa62e433c1c3042a666fba62b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine what set of merge operations is necessary in order to optimize the index. <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_index_writer.html" title="An IndexWriter creates and maintains an index. The create argument to the constructor determines whet...">IndexWriter</a> calls this when its <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_index_writer.html#a19cfeeb684bdfee1802e51fcb9d49559" title="Requests an &quot;optimize&quot; operation on an index, priming the index for the fastest available search...">IndexWriter.Optimize()</a> method is called. This call is always synchronized on the <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_index_writer.html" title="An IndexWriter creates and maintains an index. The create argument to the constructor determines whet...">IndexWriter</a> instance so only one thread at a time will call this method. <a href="#ad6010c4fa62e433c1c3042a666fba62b"></a><br/></td></tr>
<tr class="separator:ad6010c4fa62e433c1c3042a666fba62b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88ec89d1914e64f08aa0031174a7b792"><td class="memItemLeft" align="right" valign="top">abstract <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_merge_policy_1_1_merge_specification.html">MergeSpecification</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lucene_1_1_net_1_1_index_1_1_merge_policy.html#a88ec89d1914e64f08aa0031174a7b792">FindMergesToExpungeDeletes</a> (<a class="el" href="class_lucene_1_1_net_1_1_index_1_1_segment_infos.html">SegmentInfos</a> segmentInfos)</td></tr>
<tr class="memdesc:a88ec89d1914e64f08aa0031174a7b792"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine what set of merge operations is necessary in order to expunge all deletes from the index. <a href="#a88ec89d1914e64f08aa0031174a7b792"></a><br/></td></tr>
<tr class="separator:a88ec89d1914e64f08aa0031174a7b792"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa23e500e2fb34ae16af22d6cca0c0ddc"><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_index_1_1_merge_policy.html#aa23e500e2fb34ae16af22d6cca0c0ddc">Close</a> ()</td></tr>
<tr class="memdesc:aa23e500e2fb34ae16af22d6cca0c0ddc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Release all resources for the policy. <a href="#aa23e500e2fb34ae16af22d6cca0c0ddc"></a><br/></td></tr>
<tr class="separator:aa23e500e2fb34ae16af22d6cca0c0ddc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ee31cf76a7d4fef683ca53c792e6de5"><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_index_1_1_merge_policy.html#a2ee31cf76a7d4fef683ca53c792e6de5">Dispose</a> ()</td></tr>
<tr class="memdesc:a2ee31cf76a7d4fef683ca53c792e6de5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Release all resources for the policy. <a href="#a2ee31cf76a7d4fef683ca53c792e6de5"></a><br/></td></tr>
<tr class="separator:a2ee31cf76a7d4fef683ca53c792e6de5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7e6990cdf8e861dbd54b35a5e0fb2e15"><td class="memItemLeft" align="right" valign="top">abstract bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lucene_1_1_net_1_1_index_1_1_merge_policy.html#a7e6990cdf8e861dbd54b35a5e0fb2e15">UseCompoundFile</a> (<a class="el" href="class_lucene_1_1_net_1_1_index_1_1_segment_infos.html">SegmentInfos</a> segments, <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_segment_info.html">SegmentInfo</a> newSegment)</td></tr>
<tr class="memdesc:a7e6990cdf8e861dbd54b35a5e0fb2e15"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if a newly flushed (not from merge) segment should use the compound file format. <a href="#a7e6990cdf8e861dbd54b35a5e0fb2e15"></a><br/></td></tr>
<tr class="separator:a7e6990cdf8e861dbd54b35a5e0fb2e15"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a792ecc7941eba2d8e2e663d6c1ed716d"><td class="memItemLeft" align="right" valign="top">abstract bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lucene_1_1_net_1_1_index_1_1_merge_policy.html#a792ecc7941eba2d8e2e663d6c1ed716d">UseCompoundDocStore</a> (<a class="el" href="class_lucene_1_1_net_1_1_index_1_1_segment_infos.html">SegmentInfos</a> segments)</td></tr>
<tr class="memdesc:a792ecc7941eba2d8e2e663d6c1ed716d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if the doc store files should use the compound file format. <a href="#a792ecc7941eba2d8e2e663d6c1ed716d"></a><br/></td></tr>
<tr class="separator:a792ecc7941eba2d8e2e663d6c1ed716d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:ac7060dfe4b7a301e658b22974bf05149"><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_index_1_1_merge_policy.html#ac7060dfe4b7a301e658b22974bf05149">MergePolicy</a> (<a class="el" href="class_lucene_1_1_net_1_1_index_1_1_index_writer.html">IndexWriter</a> writer)</td></tr>
<tr class="separator:ac7060dfe4b7a301e658b22974bf05149"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3725d06aec319499ba190f85b5d763cc"><td class="memItemLeft" align="right" valign="top">abstract void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lucene_1_1_net_1_1_index_1_1_merge_policy.html#a3725d06aec319499ba190f85b5d763cc">Dispose</a> (bool disposing)</td></tr>
<tr class="separator:a3725d06aec319499ba190f85b5d763cc"><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>Expert: a <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_merge_policy.html" title="Expert: a MergePolicy determines the sequence of primitive merge operations to be used for overall me...">MergePolicy</a> determines the sequence of primitive merge operations to be used for overall merge and optimize operations.</p>
<p>Whenever the segments in an index have been altered by <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_index_writer.html" title="An IndexWriter creates and maintains an index. The create argument to the constructor determines whet...">IndexWriter</a>, either the addition of a newly flushed segment, addition of many segments from addIndexes* calls, or a previous merge that may now need to cascade, <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_index_writer.html" title="An IndexWriter creates and maintains an index. The create argument to the constructor determines whet...">IndexWriter</a> invokes <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_merge_policy.html#a022cab42518ce1ae0b2d3b36c33ef169" title="Determine what set of merge operations are now necessary on the index. IndexWriter calls this wheneve...">FindMerges</a> to give the <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_merge_policy.html" title="Expert: a MergePolicy determines the sequence of primitive merge operations to be used for overall me...">MergePolicy</a> a chance to pick merges that are now required. This method returns a <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_merge_policy_1_1_merge_specification.html" title="A MergeSpecification instance provides the information necessary to perform multiple merges...">MergeSpecification</a> instance describing the set of merges that should be done, or null if no merges are necessary. When IndexWriter.optimize is called, it calls <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_merge_policy.html#ad6010c4fa62e433c1c3042a666fba62b" title="Determine what set of merge operations is necessary in order to optimize the index. IndexWriter calls this when its IndexWriter.Optimize() method is called. This call is always synchronized on the IndexWriter instance so only one thread at a time will call this method.">FindMergesForOptimize</a> and the <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_merge_policy.html" title="Expert: a MergePolicy determines the sequence of primitive merge operations to be used for overall me...">MergePolicy</a> should then return the necessary merges.</p>
<p>Note that the policy can return more than one merge at a time. In this case, if the writer is using <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_serial_merge_scheduler.html" title="A MergeScheduler that simply does each merge sequentially, using the current thread. ">SerialMergeScheduler</a> , the merges will be run sequentially but if it is using <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_concurrent_merge_scheduler.html" title="A MergeScheduler that runs each merge using a separate thread, up until a maximum number of threads (...">ConcurrentMergeScheduler</a> they will be run concurrently.</p>
<p>The default <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_merge_policy.html" title="Expert: a MergePolicy determines the sequence of primitive merge operations to be used for overall me...">MergePolicy</a> is <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_log_byte_size_merge_policy.html" title="This is a LogMergePolicy that measures size of a segment as the total byte size of the segment&#39;s file...">LogByteSizeMergePolicy</a> .</p>
<p><b>NOTE:</b> This API is new and still experimental (subject to change suddenly in the next release)</p>
<p><b>NOTE</b>: This class typically requires access to package-private APIs (e.g. <code><a class="el" href="class_lucene_1_1_net_1_1_index_1_1_segment_infos.html" title="A collection of segmentInfo objects with methods for operating on those segments in relation to the f...">SegmentInfos</a></code>) to do its job; if you implement your own <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_merge_policy.html" title="Expert: a MergePolicy determines the sequence of primitive merge operations to be used for overall me...">MergePolicy</a>, you'll need to put it in package <a class="el" href="namespace_lucene_1_1_net_1_1_index.html">Lucene.Net.Index</a> in order to use these APIs. </p>
<p>Definition at line <a class="el" href="_merge_policy_8cs_source.html#l00061">61</a> of file <a class="el" href="_merge_policy_8cs_source.html">MergePolicy.cs</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="ac7060dfe4b7a301e658b22974bf05149"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Lucene.Net.Index.MergePolicy.MergePolicy </td>
<td>(</td>
<td class="paramtype"><a class="el" href="class_lucene_1_1_net_1_1_index_1_1_index_writer.html">IndexWriter</a>&#160;</td>
<td class="paramname"><em>writer</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="_merge_policy_8cs_source.html#l00243">243</a> of file <a class="el" href="_merge_policy_8cs_source.html">MergePolicy.cs</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="aa23e500e2fb34ae16af22d6cca0c0ddc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void Lucene.Net.Index.MergePolicy.Close </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Release all resources for the policy.</p>
<p>Definition at line <a class="el" href="_merge_policy_8cs_source.html#l00286">286</a> of file <a class="el" href="_merge_policy_8cs_source.html">MergePolicy.cs</a>.</p>
</div>
</div>
<a class="anchor" id="a2ee31cf76a7d4fef683ca53c792e6de5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void Lucene.Net.Index.MergePolicy.Dispose </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Release all resources for the policy.</p>
<p>Definition at line <a class="el" href="_merge_policy_8cs_source.html#l00292">292</a> of file <a class="el" href="_merge_policy_8cs_source.html">MergePolicy.cs</a>.</p>
</div>
</div>
<a class="anchor" id="a3725d06aec319499ba190f85b5d763cc"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">abstract void Lucene.Net.Index.MergePolicy.Dispose </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>disposing</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Implemented in <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_log_byte_size_merge_policy.html#aefcfb40495a9a9d341055d7f7296d686">Lucene.Net.Index.LogByteSizeMergePolicy</a>, and <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_log_doc_merge_policy.html#a8282b5eef03262d2d137e35e011d90d5">Lucene.Net.Index.LogDocMergePolicy</a>.</p>
</div>
</div>
<a class="anchor" id="a022cab42518ce1ae0b2d3b36c33ef169"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">abstract <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_merge_policy_1_1_merge_specification.html">MergeSpecification</a> Lucene.Net.Index.MergePolicy.FindMerges </td>
<td>(</td>
<td class="paramtype"><a class="el" href="class_lucene_1_1_net_1_1_index_1_1_segment_infos.html">SegmentInfos</a>&#160;</td>
<td class="paramname"><em>segmentInfos</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Determine what set of merge operations are now necessary on the index. <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_index_writer.html" title="An IndexWriter creates and maintains an index. The create argument to the constructor determines whet...">IndexWriter</a> calls this whenever there is a change to the segments. This call is always synchronized on the <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_index_writer.html" title="An IndexWriter creates and maintains an index. The create argument to the constructor determines whet...">IndexWriter</a> instance so only one thread at a time will call this method. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">segmentInfos</td><td>the total set of segments in the index </td></tr>
</table>
</dd>
</dl>
<p>Implemented in <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_log_merge_policy.html#a3d080dddbe961a1bf0c771648851a998">Lucene.Net.Index.LogMergePolicy</a>.</p>
</div>
</div>
<a class="anchor" id="ad6010c4fa62e433c1c3042a666fba62b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">abstract <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_merge_policy_1_1_merge_specification.html">MergeSpecification</a> Lucene.Net.Index.MergePolicy.FindMergesForOptimize </td>
<td>(</td>
<td class="paramtype"><a class="el" href="class_lucene_1_1_net_1_1_index_1_1_segment_infos.html">SegmentInfos</a>&#160;</td>
<td class="paramname"><em>segmentInfos</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>maxSegmentCount</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">ISet&lt; <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_segment_info.html">SegmentInfo</a> &gt;&#160;</td>
<td class="paramname"><em>segmentsToOptimize</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Determine what set of merge operations is necessary in order to optimize the index. <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_index_writer.html" title="An IndexWriter creates and maintains an index. The create argument to the constructor determines whet...">IndexWriter</a> calls this when its <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_index_writer.html#a19cfeeb684bdfee1802e51fcb9d49559" title="Requests an &quot;optimize&quot; operation on an index, priming the index for the fastest available search...">IndexWriter.Optimize()</a> method is called. This call is always synchronized on the <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_index_writer.html" title="An IndexWriter creates and maintains an index. The create argument to the constructor determines whet...">IndexWriter</a> instance so only one thread at a time will call this method. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">segmentInfos</td><td>the total set of segments in the index </td></tr>
<tr><td class="paramname">maxSegmentCount</td><td>requested maximum number of segments in the index (currently this is always 1) </td></tr>
<tr><td class="paramname">segmentsToOptimize</td><td>contains the specific <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_segment_info.html" title="Information about a segment such as it&#39;s name, directory, and files related to the segment...">SegmentInfo</a> instances that must be merged away. This may be a subset of all <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_segment_infos.html" title="A collection of segmentInfo objects with methods for operating on those segments in relation to the f...">SegmentInfos</a>. </td></tr>
</table>
</dd>
</dl>
<p>Implemented in <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_log_merge_policy.html#a1bb27d9bc06ba140107d1db6006205d9">Lucene.Net.Index.LogMergePolicy</a>.</p>
</div>
</div>
<a class="anchor" id="a88ec89d1914e64f08aa0031174a7b792"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">abstract <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_merge_policy_1_1_merge_specification.html">MergeSpecification</a> Lucene.Net.Index.MergePolicy.FindMergesToExpungeDeletes </td>
<td>(</td>
<td class="paramtype"><a class="el" href="class_lucene_1_1_net_1_1_index_1_1_segment_infos.html">SegmentInfos</a>&#160;</td>
<td class="paramname"><em>segmentInfos</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Determine what set of merge operations is necessary in order to expunge all deletes from the index. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">segmentInfos</td><td>the total set of segments in the index </td></tr>
</table>
</dd>
</dl>
<p>Implemented in <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_log_merge_policy.html#a80dd97b6c0b20ec31c60240f2edaff85">Lucene.Net.Index.LogMergePolicy</a>.</p>
</div>
</div>
<a class="anchor" id="a792ecc7941eba2d8e2e663d6c1ed716d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">abstract bool Lucene.Net.Index.MergePolicy.UseCompoundDocStore </td>
<td>(</td>
<td class="paramtype"><a class="el" href="class_lucene_1_1_net_1_1_index_1_1_segment_infos.html">SegmentInfos</a>&#160;</td>
<td class="paramname"><em>segments</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns true if the doc store files should use the compound file format. </p>
<p>Implemented in <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_log_merge_policy.html#a923c68510a0cf63a18a462a8bee38baa">Lucene.Net.Index.LogMergePolicy</a>.</p>
</div>
</div>
<a class="anchor" id="a7e6990cdf8e861dbd54b35a5e0fb2e15"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">abstract bool Lucene.Net.Index.MergePolicy.UseCompoundFile </td>
<td>(</td>
<td class="paramtype"><a class="el" href="class_lucene_1_1_net_1_1_index_1_1_segment_infos.html">SegmentInfos</a>&#160;</td>
<td class="paramname"><em>segments</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="class_lucene_1_1_net_1_1_index_1_1_segment_info.html">SegmentInfo</a>&#160;</td>
<td class="paramname"><em>newSegment</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns true if a newly flushed (not from merge) segment should use the compound file format. </p>
<p>Implemented in <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_log_merge_policy.html#af1368fcf83da177b54ee51cb6298d094">Lucene.Net.Index.LogMergePolicy</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>core/Index/<a class="el" href="_merge_policy_8cs_source.html">MergePolicy.cs</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Jan 3 2013 02:12:54 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>