blob: 1bd2cc7a20a8444d624a990cf0c3f738d3c1e5a6 [file] [log] [blame]
<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Class MMapDirectory
| Apache Lucene.NET 4.8.0-beta00013 Documentation </title>
<meta name="viewport" content="width=device-width">
<meta name="title" content="Class MMapDirectory
| Apache Lucene.NET 4.8.0-beta00013 Documentation ">
<meta name="generator" content="docfx 2.56.2.0">
<link rel="shortcut icon" href="https://lucenenet.apache.org/docs/4.8.0-beta00009/logo/favicon.ico">
<link rel="stylesheet" href="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/docfx.vendor.css">
<link rel="stylesheet" href="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/docfx.css">
<link rel="stylesheet" href="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/main.css">
<meta property="docfx:navrel" content="toc.html">
<meta property="docfx:tocrel" content="core/toc.html">
<meta property="docfx:rel" content="https://lucenenet.apache.org/docs/4.8.0-beta00009/">
</head>
<body data-spy="scroll" data-target="#affix" data-offset="120">
<span id="forkongithub"><a href="https://github.com/apache/lucenenet" target="_blank">Fork me on GitHub</a></span>
<div id="wrapper">
<header>
<nav id="autocollapse" class="navbar ng-scope" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/">
<img id="logo" class="svg" src="https://lucenenet.apache.org/docs/4.8.0-beta00009/logo/lucene-net-color.png" alt="">
</a>
</div>
<div class="collapse navbar-collapse" id="navbar">
<form class="navbar-form navbar-right" role="search" id="search">
<div class="form-group">
<input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
</div>
</form>
</div>
</div>
</nav>
<div class="subnav navbar navbar-default">
<div class="container hide-when-search">
<ul class="level0 breadcrumb">
<li>
<a href="https://lucenenet.apache.org/docs/4.8.0-beta00009/">API</a>
<span id="breadcrumb">
<ul class="breadcrumb">
<li></li>
</ul>
</span>
</li>
</ul>
</div>
</div>
</header>
<div class="container body-content">
<div id="search-results">
<div class="search-list"></div>
<div class="sr-items">
<p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
</div>
<ul id="pagination"></ul>
</div>
</div>
<div role="main" class="container body-content hide-when-search">
<div class="sidenav hide-when-search">
<a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
<div class="sidetoggle collapse" id="sidetoggle">
<div id="sidetoc"></div>
</div>
</div>
<div class="article row grid-right">
<div class="col-md-10">
<article class="content wrap" id="_content" data-uid="Lucene.Net.Store.MMapDirectory">
<h1 id="Lucene_Net_Store_MMapDirectory" data-uid="Lucene.Net.Store.MMapDirectory" class="text-break">Class MMapDirectory
</h1>
<div class="markdown level0 summary"><p>File-based <a class="xref" href="Lucene.Net.Store.Directory.html">Directory</a> implementation that uses
<span class="xref">System.IO.MemoryMappedFiles.MemoryMappedFile</span> for reading, and
<a class="xref" href="Lucene.Net.Store.FSDirectory.FSIndexOutput.html">FSDirectory.FSIndexOutput</a> for writing.</p>
<p><strong>NOTE</strong>: memory mapping uses up a portion of the
virtual memory address space in your process equal to the
size of the file being mapped. Before using this class,
be sure your have plenty of virtual address space, e.g. by
using a 64 bit runtime, or a 32 bit runtime with indexes that are
guaranteed to fit within the address space.
On 32 bit platforms also consult <a class="xref" href="Lucene.Net.Store.MMapDirectory.html#Lucene_Net_Store_MMapDirectory__ctor_System_IO_DirectoryInfo_Lucene_Net_Store_LockFactory_System_Int32_">MMapDirectory(DirectoryInfo, LockFactory, Int32)</a>
if you have problems with mmap failing because of fragmented
address space. If you get an <span class="xref">System.OutOfMemoryException</span>, it is recommended
to reduce the chunk size, until it works.
<p>
<strong>NOTE:</strong> Accessing this class either directly or
indirectly from a thread while it&apos;s interrupted can close the
underlying channel immediately if at the same time the thread is
blocked on IO. The channel will remain closed and subsequent access
to <a class="xref" href="Lucene.Net.Store.MMapDirectory.html">MMapDirectory</a> will throw a <span class="xref">System.ObjectDisposedException</span>.
</p>
</div>
<div class="markdown level0 conceptual"></div>
<div class="inheritance">
<h5>Inheritance</h5>
<div class="level0"><span class="xref">System.Object</span></div>
<div class="level1"><a class="xref" href="Lucene.Net.Store.Directory.html">Directory</a></div>
<div class="level2"><a class="xref" href="Lucene.Net.Store.BaseDirectory.html">BaseDirectory</a></div>
<div class="level3"><a class="xref" href="Lucene.Net.Store.FSDirectory.html">FSDirectory</a></div>
<div class="level4"><span class="xref">MMapDirectory</span></div>
</div>
<div classs="implements">
<h5>Implements</h5>
<div><span class="xref">System.IDisposable</span></div>
</div>
<div class="inheritedMembers">
<h5>Inherited Members</h5>
<div>
<a class="xref" href="Lucene.Net.Store.FSDirectory.html#Lucene_Net_Store_FSDirectory_DEFAULT_READ_CHUNK_SIZE">FSDirectory.DEFAULT_READ_CHUNK_SIZE</a>
</div>
<div>
<a class="xref" href="Lucene.Net.Store.FSDirectory.html#Lucene_Net_Store_FSDirectory_m_directory">FSDirectory.m_directory</a>
</div>
<div>
<a class="xref" href="Lucene.Net.Store.FSDirectory.html#Lucene_Net_Store_FSDirectory_Open_System_IO_DirectoryInfo_">FSDirectory.Open(DirectoryInfo)</a>
</div>
<div>
<a class="xref" href="Lucene.Net.Store.FSDirectory.html#Lucene_Net_Store_FSDirectory_Open_System_String_">FSDirectory.Open(String)</a>
</div>
<div>
<a class="xref" href="Lucene.Net.Store.FSDirectory.html#Lucene_Net_Store_FSDirectory_Open_System_IO_DirectoryInfo_Lucene_Net_Store_LockFactory_">FSDirectory.Open(DirectoryInfo, LockFactory)</a>
</div>
<div>
<a class="xref" href="Lucene.Net.Store.FSDirectory.html#Lucene_Net_Store_FSDirectory_Open_System_String_Lucene_Net_Store_LockFactory_">FSDirectory.Open(String, LockFactory)</a>
</div>
<div>
<a class="xref" href="Lucene.Net.Store.FSDirectory.html#Lucene_Net_Store_FSDirectory_SetLockFactory_Lucene_Net_Store_LockFactory_">FSDirectory.SetLockFactory(LockFactory)</a>
</div>
<div>
<a class="xref" href="Lucene.Net.Store.FSDirectory.html#Lucene_Net_Store_FSDirectory_ListAll_System_IO_DirectoryInfo_">FSDirectory.ListAll(DirectoryInfo)</a>
</div>
<div>
<a class="xref" href="Lucene.Net.Store.FSDirectory.html#Lucene_Net_Store_FSDirectory_ListAll">FSDirectory.ListAll()</a>
</div>
<div>
<a class="xref" href="Lucene.Net.Store.FSDirectory.html#Lucene_Net_Store_FSDirectory_FileExists_System_String_">FSDirectory.FileExists(String)</a>
</div>
<div>
<a class="xref" href="Lucene.Net.Store.FSDirectory.html#Lucene_Net_Store_FSDirectory_FileLength_System_String_">FSDirectory.FileLength(String)</a>
</div>
<div>
<a class="xref" href="Lucene.Net.Store.FSDirectory.html#Lucene_Net_Store_FSDirectory_DeleteFile_System_String_">FSDirectory.DeleteFile(String)</a>
</div>
<div>
<a class="xref" href="Lucene.Net.Store.FSDirectory.html#Lucene_Net_Store_FSDirectory_CreateOutput_System_String_Lucene_Net_Store_IOContext_">FSDirectory.CreateOutput(String, IOContext)</a>
</div>
<div>
<a class="xref" href="Lucene.Net.Store.FSDirectory.html#Lucene_Net_Store_FSDirectory_EnsureCanWrite_System_String_">FSDirectory.EnsureCanWrite(String)</a>
</div>
<div>
<a class="xref" href="Lucene.Net.Store.FSDirectory.html#Lucene_Net_Store_FSDirectory_OnIndexOutputClosed_Lucene_Net_Store_FSDirectory_FSIndexOutput_">FSDirectory.OnIndexOutputClosed(FSDirectory.FSIndexOutput)</a>
</div>
<div>
<a class="xref" href="Lucene.Net.Store.FSDirectory.html#Lucene_Net_Store_FSDirectory_Sync_System_Collections_Generic_ICollection_System_String__">FSDirectory.Sync(ICollection&lt;String&gt;)</a>
</div>
<div>
<a class="xref" href="Lucene.Net.Store.FSDirectory.html#Lucene_Net_Store_FSDirectory_GetLockID">FSDirectory.GetLockID()</a>
</div>
<div>
<a class="xref" href="Lucene.Net.Store.FSDirectory.html#Lucene_Net_Store_FSDirectory_Dispose_System_Boolean_">FSDirectory.Dispose(Boolean)</a>
</div>
<div>
<a class="xref" href="Lucene.Net.Store.FSDirectory.html#Lucene_Net_Store_FSDirectory_Directory">FSDirectory.Directory</a>
</div>
<div>
<a class="xref" href="Lucene.Net.Store.FSDirectory.html#Lucene_Net_Store_FSDirectory_ToString">FSDirectory.ToString()</a>
</div>
<div>
<a class="xref" href="Lucene.Net.Store.FSDirectory.html#Lucene_Net_Store_FSDirectory_ReadChunkSize">FSDirectory.ReadChunkSize</a>
</div>
<div>
<a class="xref" href="Lucene.Net.Store.BaseDirectory.html#Lucene_Net_Store_BaseDirectory_IsOpen">BaseDirectory.IsOpen</a>
</div>
<div>
<a class="xref" href="Lucene.Net.Store.BaseDirectory.html#Lucene_Net_Store_BaseDirectory_m_lockFactory">BaseDirectory.m_lockFactory</a>
</div>
<div>
<a class="xref" href="Lucene.Net.Store.BaseDirectory.html#Lucene_Net_Store_BaseDirectory_MakeLock_System_String_">BaseDirectory.MakeLock(String)</a>
</div>
<div>
<a class="xref" href="Lucene.Net.Store.BaseDirectory.html#Lucene_Net_Store_BaseDirectory_ClearLock_System_String_">BaseDirectory.ClearLock(String)</a>
</div>
<div>
<a class="xref" href="Lucene.Net.Store.BaseDirectory.html#Lucene_Net_Store_BaseDirectory_LockFactory">BaseDirectory.LockFactory</a>
</div>
<div>
<a class="xref" href="Lucene.Net.Store.BaseDirectory.html#Lucene_Net_Store_BaseDirectory_EnsureOpen">BaseDirectory.EnsureOpen()</a>
</div>
<div>
<a class="xref" href="Lucene.Net.Store.Directory.html#Lucene_Net_Store_Directory_OpenChecksumInput_System_String_Lucene_Net_Store_IOContext_">Directory.OpenChecksumInput(String, IOContext)</a>
</div>
<div>
<a class="xref" href="Lucene.Net.Store.Directory.html#Lucene_Net_Store_Directory_Dispose">Directory.Dispose()</a>
</div>
<div>
<a class="xref" href="Lucene.Net.Store.Directory.html#Lucene_Net_Store_Directory_Copy_Lucene_Net_Store_Directory_System_String_System_String_Lucene_Net_Store_IOContext_">Directory.Copy(Directory, String, String, IOContext)</a>
</div>
<div>
<span class="xref">System.Object.Equals(System.Object)</span>
</div>
<div>
<span class="xref">System.Object.Equals(System.Object, System.Object)</span>
</div>
<div>
<span class="xref">System.Object.GetHashCode()</span>
</div>
<div>
<span class="xref">System.Object.GetType()</span>
</div>
<div>
<span class="xref">System.Object.MemberwiseClone()</span>
</div>
<div>
<span class="xref">System.Object.ReferenceEquals(System.Object, System.Object)</span>
</div>
</div>
<h6><strong>Namespace</strong>: <a class="xref" href="Lucene.Net.Store.html">Lucene.Net.Store</a></h6>
<h6><strong>Assembly</strong>: Lucene.Net.dll</h6>
<h5 id="Lucene_Net_Store_MMapDirectory_syntax">Syntax</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public class MMapDirectory : FSDirectory, IDisposable</code></pre>
</div>
<h3 id="constructors">Constructors
</h3>
<span class="small pull-right mobile-hide">
<span class="divider">|</span>
<a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Store_MMapDirectory__ctor_System_IO_DirectoryInfo_.md&amp;value=---%0Auid%3A%20Lucene.Net.Store.MMapDirectory.%23ctor(System.IO.DirectoryInfo)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
</span>
<span class="small pull-right mobile-hide">
<a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net/Store/MMapDirectory.cs/#L81">View Source</a>
</span>
<a id="Lucene_Net_Store_MMapDirectory__ctor_" data-uid="Lucene.Net.Store.MMapDirectory.#ctor*"></a>
<h4 id="Lucene_Net_Store_MMapDirectory__ctor_System_IO_DirectoryInfo_" data-uid="Lucene.Net.Store.MMapDirectory.#ctor(System.IO.DirectoryInfo)">MMapDirectory(DirectoryInfo)</h4>
<div class="markdown level1 summary"><p>Create a new <a class="xref" href="Lucene.Net.Store.MMapDirectory.html">MMapDirectory</a> for the named location and <a class="xref" href="Lucene.Net.Store.NativeFSLockFactory.html">NativeFSLockFactory</a>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public MMapDirectory(DirectoryInfo path)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.IO.DirectoryInfo</span></td>
<td><span class="parametername">path</span></td>
<td><p>the path of the directory </p>
</td>
</tr>
</tbody>
</table>
<h5 class="exceptions">Exceptions</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Condition</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.IO.IOException</span></td>
<td><p>if there is a low-level I/O error </p>
</td>
</tr>
</tbody>
</table>
<span class="small pull-right mobile-hide">
<span class="divider">|</span>
<a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Store_MMapDirectory__ctor_System_IO_DirectoryInfo_Lucene_Net_Store_LockFactory_.md&amp;value=---%0Auid%3A%20Lucene.Net.Store.MMapDirectory.%23ctor(System.IO.DirectoryInfo%2CLucene.Net.Store.LockFactory)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
</span>
<span class="small pull-right mobile-hide">
<a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net/Store/MMapDirectory.cs/#L71">View Source</a>
</span>
<a id="Lucene_Net_Store_MMapDirectory__ctor_" data-uid="Lucene.Net.Store.MMapDirectory.#ctor*"></a>
<h4 id="Lucene_Net_Store_MMapDirectory__ctor_System_IO_DirectoryInfo_Lucene_Net_Store_LockFactory_" data-uid="Lucene.Net.Store.MMapDirectory.#ctor(System.IO.DirectoryInfo,Lucene.Net.Store.LockFactory)">MMapDirectory(DirectoryInfo, LockFactory)</h4>
<div class="markdown level1 summary"><p>Create a new <a class="xref" href="Lucene.Net.Store.MMapDirectory.html">MMapDirectory</a> for the named location.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public MMapDirectory(DirectoryInfo path, LockFactory lockFactory)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.IO.DirectoryInfo</span></td>
<td><span class="parametername">path</span></td>
<td><p>the path of the directory </p>
</td>
</tr>
<tr>
<td><a class="xref" href="Lucene.Net.Store.LockFactory.html">LockFactory</a></td>
<td><span class="parametername">lockFactory</span></td>
<td><p>the lock factory to use, or null for the default
(<a class="xref" href="Lucene.Net.Store.NativeFSLockFactory.html">NativeFSLockFactory</a>); </p>
</td>
</tr>
</tbody>
</table>
<h5 class="exceptions">Exceptions</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Condition</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.IO.IOException</span></td>
<td><p>if there is a low-level I/O error </p>
</td>
</tr>
</tbody>
</table>
<span class="small pull-right mobile-hide">
<span class="divider">|</span>
<a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Store_MMapDirectory__ctor_System_IO_DirectoryInfo_Lucene_Net_Store_LockFactory_System_Int32_.md&amp;value=---%0Auid%3A%20Lucene.Net.Store.MMapDirectory.%23ctor(System.IO.DirectoryInfo%2CLucene.Net.Store.LockFactory%2CSystem.Int32)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
</span>
<span class="small pull-right mobile-hide">
<a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net/Store/MMapDirectory.cs/#L106">View Source</a>
</span>
<a id="Lucene_Net_Store_MMapDirectory__ctor_" data-uid="Lucene.Net.Store.MMapDirectory.#ctor*"></a>
<h4 id="Lucene_Net_Store_MMapDirectory__ctor_System_IO_DirectoryInfo_Lucene_Net_Store_LockFactory_System_Int32_" data-uid="Lucene.Net.Store.MMapDirectory.#ctor(System.IO.DirectoryInfo,Lucene.Net.Store.LockFactory,System.Int32)">MMapDirectory(DirectoryInfo, LockFactory, Int32)</h4>
<div class="markdown level1 summary"><p>Create a new <a class="xref" href="Lucene.Net.Store.MMapDirectory.html">MMapDirectory</a> for the named location, specifying the
maximum chunk size used for memory mapping.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public MMapDirectory(DirectoryInfo path, LockFactory lockFactory, int maxChunkSize)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.IO.DirectoryInfo</span></td>
<td><span class="parametername">path</span></td>
<td><p>the path of the directory </p>
</td>
</tr>
<tr>
<td><a class="xref" href="Lucene.Net.Store.LockFactory.html">LockFactory</a></td>
<td><span class="parametername">lockFactory</span></td>
<td><p>the lock factory to use, or <code>null</code> for the default
(<a class="xref" href="Lucene.Net.Store.NativeFSLockFactory.html">NativeFSLockFactory</a>); </p>
</td>
</tr>
<tr>
<td><span class="xref">System.Int32</span></td>
<td><span class="parametername">maxChunkSize</span></td>
<td><p>maximum chunk size (default is 1 GiBytes for
64 bit runtimes and 256 MiBytes for 32 bit runtimes) used for memory mapping.
<p>
Especially on 32 bit platform, the address space can be very fragmented,
so large index files cannot be mapped. Using a lower chunk size makes
the directory implementation a little bit slower (as the correct chunk
may be resolved on lots of seeks) but the chance is higher that mmap
does not fail. On 64 bit platforms, this parameter should always
be <code>1 &lt;&lt; 30</code>, as the address space is big enough.
<p>
<strong>Please note:</strong> The chunk size is always rounded down to a power of 2.</p>
</td>
</tr>
</tbody>
</table>
<h5 class="exceptions">Exceptions</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Condition</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.IO.IOException</span></td>
<td><p>if there is a low-level I/O error </p>
</td>
</tr>
</tbody>
</table>
<span class="small pull-right mobile-hide">
<span class="divider">|</span>
<a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Store_MMapDirectory__ctor_System_String_.md&amp;value=---%0Auid%3A%20Lucene.Net.Store.MMapDirectory.%23ctor(System.String)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
</span>
<span class="small pull-right mobile-hide">
<a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net/Store/MMapDirectory.cs/#L138">View Source</a>
</span>
<a id="Lucene_Net_Store_MMapDirectory__ctor_" data-uid="Lucene.Net.Store.MMapDirectory.#ctor*"></a>
<h4 id="Lucene_Net_Store_MMapDirectory__ctor_System_String_" data-uid="Lucene.Net.Store.MMapDirectory.#ctor(System.String)">MMapDirectory(String)</h4>
<div class="markdown level1 summary"><p>Create a new <a class="xref" href="Lucene.Net.Store.MMapDirectory.html">MMapDirectory</a> for the named location and <a class="xref" href="Lucene.Net.Store.NativeFSLockFactory.html">NativeFSLockFactory</a>.
<p>
LUCENENET specific overload for convenience using string instead of <span class="xref">System.IO.DirectoryInfo</span>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public MMapDirectory(string path)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.String</span></td>
<td><span class="parametername">path</span></td>
<td><p>the path of the directory </p>
</td>
</tr>
</tbody>
</table>
<h5 class="exceptions">Exceptions</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Condition</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.IO.IOException</span></td>
<td><p>if there is a low-level I/O error </p>
</td>
</tr>
</tbody>
</table>
<span class="small pull-right mobile-hide">
<span class="divider">|</span>
<a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Store_MMapDirectory__ctor_System_String_Lucene_Net_Store_LockFactory_.md&amp;value=---%0Auid%3A%20Lucene.Net.Store.MMapDirectory.%23ctor(System.String%2CLucene.Net.Store.LockFactory)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
</span>
<span class="small pull-right mobile-hide">
<a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net/Store/MMapDirectory.cs/#L126">View Source</a>
</span>
<a id="Lucene_Net_Store_MMapDirectory__ctor_" data-uid="Lucene.Net.Store.MMapDirectory.#ctor*"></a>
<h4 id="Lucene_Net_Store_MMapDirectory__ctor_System_String_Lucene_Net_Store_LockFactory_" data-uid="Lucene.Net.Store.MMapDirectory.#ctor(System.String,Lucene.Net.Store.LockFactory)">MMapDirectory(String, LockFactory)</h4>
<div class="markdown level1 summary"><p>Create a new <a class="xref" href="Lucene.Net.Store.MMapDirectory.html">MMapDirectory</a> for the named location.
<p>
LUCENENET specific overload for convenience using string instead of <span class="xref">System.IO.DirectoryInfo</span>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public MMapDirectory(string path, LockFactory lockFactory)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.String</span></td>
<td><span class="parametername">path</span></td>
<td><p>the path of the directory </p>
</td>
</tr>
<tr>
<td><a class="xref" href="Lucene.Net.Store.LockFactory.html">LockFactory</a></td>
<td><span class="parametername">lockFactory</span></td>
<td><p>the lock factory to use, or null for the default
(<a class="xref" href="Lucene.Net.Store.NativeFSLockFactory.html">NativeFSLockFactory</a>); </p>
</td>
</tr>
</tbody>
</table>
<h5 class="exceptions">Exceptions</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Condition</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.IO.IOException</span></td>
<td><p>if there is a low-level I/O error </p>
</td>
</tr>
</tbody>
</table>
<span class="small pull-right mobile-hide">
<span class="divider">|</span>
<a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Store_MMapDirectory__ctor_System_String_Lucene_Net_Store_LockFactory_System_Int32_.md&amp;value=---%0Auid%3A%20Lucene.Net.Store.MMapDirectory.%23ctor(System.String%2CLucene.Net.Store.LockFactory%2CSystem.Int32)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
</span>
<span class="small pull-right mobile-hide">
<a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net/Store/MMapDirectory.cs/#L165">View Source</a>
</span>
<a id="Lucene_Net_Store_MMapDirectory__ctor_" data-uid="Lucene.Net.Store.MMapDirectory.#ctor*"></a>
<h4 id="Lucene_Net_Store_MMapDirectory__ctor_System_String_Lucene_Net_Store_LockFactory_System_Int32_" data-uid="Lucene.Net.Store.MMapDirectory.#ctor(System.String,Lucene.Net.Store.LockFactory,System.Int32)">MMapDirectory(String, LockFactory, Int32)</h4>
<div class="markdown level1 summary"><p>Create a new <a class="xref" href="Lucene.Net.Store.MMapDirectory.html">MMapDirectory</a> for the named location, specifying the
maximum chunk size used for memory mapping.
<p>
LUCENENET specific overload for convenience using string instead of <span class="xref">System.IO.DirectoryInfo</span>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public MMapDirectory(string path, LockFactory lockFactory, int maxChunkSize)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.String</span></td>
<td><span class="parametername">path</span></td>
<td><p>the path of the directory </p>
</td>
</tr>
<tr>
<td><a class="xref" href="Lucene.Net.Store.LockFactory.html">LockFactory</a></td>
<td><span class="parametername">lockFactory</span></td>
<td><p>the lock factory to use, or <code>null</code> for the default
(<a class="xref" href="Lucene.Net.Store.NativeFSLockFactory.html">NativeFSLockFactory</a>); </p>
</td>
</tr>
<tr>
<td><span class="xref">System.Int32</span></td>
<td><span class="parametername">maxChunkSize</span></td>
<td><p>maximum chunk size (default is 1 GiBytes for
64 bit runtimes and 256 MiBytes for 32 bit runtimes) used for memory mapping.
<p>
Especially on 32 bit platform, the address space can be very fragmented,
so large index files cannot be mapped. Using a lower chunk size makes
the directory implementation a little bit slower (as the correct chunk
may be resolved on lots of seeks) but the chance is higher that mmap
does not fail. On 64 bit platforms, this parameter should always
be <code>1 &lt;&lt; 30</code>, as the address space is big enough.
<p>
<strong>Please note:</strong> The chunk size is always rounded down to a power of 2.</p>
</td>
</tr>
</tbody>
</table>
<h5 class="exceptions">Exceptions</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Condition</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.IO.IOException</span></td>
<td><p>if there is a low-level I/O error </p>
</td>
</tr>
</tbody>
</table>
<h3 id="fields">Fields
</h3>
<span class="small pull-right mobile-hide">
<span class="divider">|</span>
<a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Store_MMapDirectory_DEFAULT_MAX_BUFF.md&amp;value=---%0Auid%3A%20Lucene.Net.Store.MMapDirectory.DEFAULT_MAX_BUFF%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
</span>
<span class="small pull-right mobile-hide">
<a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net/Store/MMapDirectory.cs/#L60">View Source</a>
</span>
<h4 id="Lucene_Net_Store_MMapDirectory_DEFAULT_MAX_BUFF" data-uid="Lucene.Net.Store.MMapDirectory.DEFAULT_MAX_BUFF">DEFAULT_MAX_BUFF</h4>
<div class="markdown level1 summary"><p>Default max chunk size. </p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static readonly int DEFAULT_MAX_BUFF</code></pre>
</div>
<h5 class="fieldValue">Field Value</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.Int32</span></td>
<td></td>
</tr>
</tbody>
</table>
<h5 id="Lucene_Net_Store_MMapDirectory_DEFAULT_MAX_BUFF_seealso">See Also</h5>
<div class="seealso">
<div><a class="xref" href="Lucene.Net.Store.MMapDirectory.html#Lucene_Net_Store_MMapDirectory__ctor_System_IO_DirectoryInfo_Lucene_Net_Store_LockFactory_System_Int32_">MMapDirectory(DirectoryInfo, LockFactory, Int32)</a></div>
</div>
<h3 id="properties">Properties
</h3>
<span class="small pull-right mobile-hide">
<span class="divider">|</span>
<a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Store_MMapDirectory_MaxChunkSize.md&amp;value=---%0Auid%3A%20Lucene.Net.Store.MMapDirectory.MaxChunkSize%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
</span>
<span class="small pull-right mobile-hide">
<a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net/Store/MMapDirectory.cs/#L177">View Source</a>
</span>
<a id="Lucene_Net_Store_MMapDirectory_MaxChunkSize_" data-uid="Lucene.Net.Store.MMapDirectory.MaxChunkSize*"></a>
<h4 id="Lucene_Net_Store_MMapDirectory_MaxChunkSize" data-uid="Lucene.Net.Store.MMapDirectory.MaxChunkSize">MaxChunkSize</h4>
<div class="markdown level1 summary"><p>Returns the current mmap chunk size. </p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public int MaxChunkSize { get; }</code></pre>
</div>
<h5 class="propertyValue">Property Value</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.Int32</span></td>
<td></td>
</tr>
</tbody>
</table>
<h5 id="Lucene_Net_Store_MMapDirectory_MaxChunkSize_seealso">See Also</h5>
<div class="seealso">
<div><a class="xref" href="Lucene.Net.Store.MMapDirectory.html#Lucene_Net_Store_MMapDirectory__ctor_System_IO_DirectoryInfo_Lucene_Net_Store_LockFactory_System_Int32_">MMapDirectory(DirectoryInfo, LockFactory, Int32)</a></div>
</div>
<h3 id="methods">Methods
</h3>
<span class="small pull-right mobile-hide">
<span class="divider">|</span>
<a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Store_MMapDirectory_CreateSlicer_System_String_Lucene_Net_Store_IOContext_.md&amp;value=---%0Auid%3A%20Lucene.Net.Store.MMapDirectory.CreateSlicer(System.String%2CLucene.Net.Store.IOContext)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
</span>
<span class="small pull-right mobile-hide">
<a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net/Store/MMapDirectory.cs/#L189">View Source</a>
</span>
<a id="Lucene_Net_Store_MMapDirectory_CreateSlicer_" data-uid="Lucene.Net.Store.MMapDirectory.CreateSlicer*"></a>
<h4 id="Lucene_Net_Store_MMapDirectory_CreateSlicer_System_String_Lucene_Net_Store_IOContext_" data-uid="Lucene.Net.Store.MMapDirectory.CreateSlicer(System.String,Lucene.Net.Store.IOContext)">CreateSlicer(String, IOContext)</h4>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public override Directory.IndexInputSlicer CreateSlicer(string name, IOContext context)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.String</span></td>
<td><span class="parametername">name</span></td>
<td></td>
</tr>
<tr>
<td><a class="xref" href="Lucene.Net.Store.IOContext.html">IOContext</a></td>
<td><span class="parametername">context</span></td>
<td></td>
</tr>
</tbody>
</table>
<h5 class="returns">Returns</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="xref" href="Lucene.Net.Store.Directory.IndexInputSlicer.html">Directory.IndexInputSlicer</a></td>
<td></td>
</tr>
</tbody>
</table>
<h5 class="overrides">Overrides</h5>
<div><a class="xref" href="Lucene.Net.Store.Directory.html#Lucene_Net_Store_Directory_CreateSlicer_System_String_Lucene_Net_Store_IOContext_">Directory.CreateSlicer(String, IOContext)</a></div>
<span class="small pull-right mobile-hide">
<span class="divider">|</span>
<a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Store_MMapDirectory_OpenInput_System_String_Lucene_Net_Store_IOContext_.md&amp;value=---%0Auid%3A%20Lucene.Net.Store.MMapDirectory.OpenInput(System.String%2CLucene.Net.Store.IOContext)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
</span>
<span class="small pull-right mobile-hide">
<a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net/Store/MMapDirectory.cs/#L181">View Source</a>
</span>
<a id="Lucene_Net_Store_MMapDirectory_OpenInput_" data-uid="Lucene.Net.Store.MMapDirectory.OpenInput*"></a>
<h4 id="Lucene_Net_Store_MMapDirectory_OpenInput_System_String_Lucene_Net_Store_IOContext_" data-uid="Lucene.Net.Store.MMapDirectory.OpenInput(System.String,Lucene.Net.Store.IOContext)">OpenInput(String, IOContext)</h4>
<div class="markdown level1 summary"><p>Creates an <a class="xref" href="Lucene.Net.Store.IndexInput.html">IndexInput</a> for the file with the given name. </p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public override IndexInput OpenInput(string name, IOContext context)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.String</span></td>
<td><span class="parametername">name</span></td>
<td></td>
</tr>
<tr>
<td><a class="xref" href="Lucene.Net.Store.IOContext.html">IOContext</a></td>
<td><span class="parametername">context</span></td>
<td></td>
</tr>
</tbody>
</table>
<h5 class="returns">Returns</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="xref" href="Lucene.Net.Store.IndexInput.html">IndexInput</a></td>
<td></td>
</tr>
</tbody>
</table>
<h5 class="overrides">Overrides</h5>
<div><a class="xref" href="Lucene.Net.Store.Directory.html#Lucene_Net_Store_Directory_OpenInput_System_String_Lucene_Net_Store_IOContext_">Directory.OpenInput(String, IOContext)</a></div>
<h3 id="implements">Implements</h3>
<div>
<span class="xref">System.IDisposable</span>
</div>
</article>
</div>
<div class="hidden-sm col-md-2" role="complementary">
<div class="sideaffix">
<div class="contribution">
<ul class="nav">
<li>
<a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Store_MMapDirectory.md&amp;value=---%0Auid%3A%20Lucene.Net.Store.MMapDirectory%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A" class="contribution-link">Improve this Doc</a>
</li>
<li>
<a href="https://github.com/apache/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net/Store/MMapDirectory.cs/#L53" class="contribution-link">View Source</a>
</li>
</ul>
</div>
<nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
<!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
</nav>
</div>
</div>
</div>
</div>
<footer>
<div class="grad-bottom"></div>
<div class="footer">
<div class="container">
<span class="pull-right">
<a href="#top">Back to top</a>
</span>
Copyright © 2020 The Apache Software Foundation, Licensed under the <a href='http://www.apache.org/licenses/LICENSE-2.0' target='_blank'>Apache License, Version 2.0</a><br> <small>Apache Lucene.Net, Lucene.Net, Apache, the Apache feather logo, and the Apache Lucene.Net project logo are trademarks of The Apache Software Foundation. <br>All other marks mentioned may be trademarks or registered trademarks of their respective owners.</small>
</div>
</div>
</footer>
</div>
<script type="text/javascript" src="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/docfx.vendor.js"></script>
<script type="text/javascript" src="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/docfx.js"></script>
<script type="text/javascript" src="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/main.js"></script>
</body>
</html>