blob: ab64ed36408aa7aa9f0dc158e4bb99b9edbe4d7e [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 Filter
| Apache Lucene.NET 4.8.0-beta00010 Documentation </title>
<meta name="viewport" content="width=device-width">
<meta name="title" content="Class Filter
| Apache Lucene.NET 4.8.0-beta00010 Documentation ">
<meta name="generator" content="docfx 2.56.0.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">
<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.Search.Filter">
<h1 id="Lucene_Net_Search_Filter" data-uid="Lucene.Net.Search.Filter" class="text-break">Class Filter
</h1>
<div class="markdown level0 summary"><p>Abstract base class for restricting which documents may
be returned during searching.</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"><span class="xref">Filter</span></div>
<div class="level2"><a class="xref" href="Lucene.Net.Search.CachingWrapperFilter.html">CachingWrapperFilter</a></div>
<div class="level2"><a class="xref" href="Lucene.Net.Search.DocTermOrdsRangeFilter.html">DocTermOrdsRangeFilter</a></div>
<div class="level2"><a class="xref" href="Lucene.Net.Search.FieldCacheRangeFilter-1.html">FieldCacheRangeFilter&lt;T&gt;</a></div>
<div class="level2"><a class="xref" href="Lucene.Net.Search.FieldCacheTermsFilter.html">FieldCacheTermsFilter</a></div>
<div class="level2"><a class="xref" href="Lucene.Net.Search.FieldValueFilter.html">FieldValueFilter</a></div>
<div class="level2"><a class="xref" href="Lucene.Net.Search.MultiTermQueryWrapperFilter-1.html">MultiTermQueryWrapperFilter&lt;Q&gt;</a></div>
<div class="level2"><a class="xref" href="Lucene.Net.Search.QueryWrapperFilter.html">QueryWrapperFilter</a></div>
</div>
<div class="inheritedMembers">
<h5>Inherited Members</h5>
<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>
<span class="xref">System.Object.ToString()</span>
</div>
</div>
<h6><strong>Namespace</strong>: <a class="xref" href="Lucene.Net.Search.html">Lucene.Net.Search</a></h6>
<h6><strong>Assembly</strong>: Lucene.Net.dll</h6>
<h5 id="Lucene_Net_Search_Filter_syntax">Syntax</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public abstract class Filter</code></pre>
</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-beta00010/websites/apidocs/apiSpec/new?filename=Lucene_Net_Search_Filter_GetDocIdSet_Lucene_Net_Index_AtomicReaderContext_Lucene_Net_Util_IBits_.md&amp;value=---%0Auid%3A%20Lucene.Net.Search.Filter.GetDocIdSet(Lucene.Net.Index.AtomicReaderContext%2CLucene.Net.Util.IBits)%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/release/Lucene.Net_4_8_0_beta00010/src/Lucene.Net/Search/Filter.cs/#L58">View Source</a>
</span>
<a id="Lucene_Net_Search_Filter_GetDocIdSet_" data-uid="Lucene.Net.Search.Filter.GetDocIdSet*"></a>
<h4 id="Lucene_Net_Search_Filter_GetDocIdSet_Lucene_Net_Index_AtomicReaderContext_Lucene_Net_Util_IBits_" data-uid="Lucene.Net.Search.Filter.GetDocIdSet(Lucene.Net.Index.AtomicReaderContext,Lucene.Net.Util.IBits)">GetDocIdSet(AtomicReaderContext, IBits)</h4>
<div class="markdown level1 summary"><p>Creates a <a class="xref" href="Lucene.Net.Search.DocIdSet.html">DocIdSet</a> enumerating the documents that should be
permitted in search results. <strong>NOTE:</strong> <code>null</code> can be
returned if no documents are accepted by this <a class="xref" href="Lucene.Net.Search.Filter.html">Filter</a>.
<p>
Note: this method will be called once per segment in
the index during searching. The returned <a class="xref" href="Lucene.Net.Search.DocIdSet.html">DocIdSet</a>
must refer to document IDs for that segment, not for
the top-level reader.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public abstract DocIdSet GetDocIdSet(AtomicReaderContext context, IBits acceptDocs)</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><a class="xref" href="Lucene.Net.Index.AtomicReaderContext.html">AtomicReaderContext</a></td>
<td><span class="parametername">context</span></td>
<td><p>a <a class="xref" href="Lucene.Net.Index.AtomicReaderContext.html">AtomicReaderContext</a> instance opened on the index currently
searched on. Note, it is likely that the provided reader info does not
represent the whole underlying index i.e. if the index has more than
one segment the given reader only represents a single segment.
The provided context is always an atomic context, so you can call
<a class="xref" href="Lucene.Net.Index.AtomicReader.html#Lucene_Net_Index_AtomicReader_Fields">Fields</a>
on the context&apos;s reader, for example.</p>
</td>
</tr>
<tr>
<td><a class="xref" href="Lucene.Net.Util.IBits.html">IBits</a></td>
<td><span class="parametername">acceptDocs</span></td>
<td><p><a class="xref" href="Lucene.Net.Util.IBits.html">IBits</a> that represent the allowable docs to match (typically deleted docs
but possibly filtering other documents)</p>
</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.Search.DocIdSet.html">DocIdSet</a></td>
<td><p>A <a class="xref" href="Lucene.Net.Search.DocIdSet.html">DocIdSet</a> that provides the documents which should be permitted or
prohibited in search results. <strong>NOTE:</strong> <code>null</code> should be returned if
the filter doesn&apos;t accept any documents otherwise internal optimization might not apply
in the case an <em>empty</em> <a class="xref" href="Lucene.Net.Search.DocIdSet.html">DocIdSet</a> is returned. </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-beta00010/websites/apidocs/apiSpec/new?filename=Lucene_Net_Search_Filter_NewAnonymous_System_Func_Lucene_Net_Index_AtomicReaderContext_Lucene_Net_Util_IBits_Lucene_Net_Search_DocIdSet__.md&amp;value=---%0Auid%3A%20Lucene.Net.Search.Filter.NewAnonymous(System.Func%7BLucene.Net.Index.AtomicReaderContext%2CLucene.Net.Util.IBits%2CLucene.Net.Search.DocIdSet%7D)%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/release/Lucene.Net_4_8_0_beta00010/src/Lucene.Net/Search/Filter.cs/#L84">View Source</a>
</span>
<a id="Lucene_Net_Search_Filter_NewAnonymous_" data-uid="Lucene.Net.Search.Filter.NewAnonymous*"></a>
<h4 id="Lucene_Net_Search_Filter_NewAnonymous_System_Func_Lucene_Net_Index_AtomicReaderContext_Lucene_Net_Util_IBits_Lucene_Net_Search_DocIdSet__" data-uid="Lucene.Net.Search.Filter.NewAnonymous(System.Func{Lucene.Net.Index.AtomicReaderContext,Lucene.Net.Util.IBits,Lucene.Net.Search.DocIdSet})">NewAnonymous(Func&lt;AtomicReaderContext, IBits, DocIdSet&gt;)</h4>
<div class="markdown level1 summary"><p>Creates a new instance with the ability to specify the body of the <a class="xref" href="Lucene.Net.Search.Filter.html#Lucene_Net_Search_Filter_GetDocIdSet_Lucene_Net_Index_AtomicReaderContext_Lucene_Net_Util_IBits_">GetDocIdSet(AtomicReaderContext, IBits)</a>
method through the <code data-dev-comment-type="paramref" class="paramref">getDocIdSet</code> parameter.
Simple example:</p>
<pre><code> var filter = Filter.NewAnonymous(getDocIdSet: (context, acceptDocs) =>
{
if (acceptDocs == null) acceptDocs = new Bits.MatchAllBits(5);
OpenBitSet bitset = new OpenBitSet(5);
if (acceptDocs.Get(1)) bitset.Set(1);
if (acceptDocs.Get(3)) bitset.Set(3);
return new DocIdBitSet(bitset);
});</code></pre>
<p><p>
LUCENENET specific</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static Filter NewAnonymous(Func&lt;AtomicReaderContext, IBits, DocIdSet&gt; getDocIdSet)</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.Func</span>&lt;<a class="xref" href="Lucene.Net.Index.AtomicReaderContext.html">AtomicReaderContext</a>, <a class="xref" href="Lucene.Net.Util.IBits.html">IBits</a>, <a class="xref" href="Lucene.Net.Search.DocIdSet.html">DocIdSet</a>&gt;</td>
<td><span class="parametername">getDocIdSet</span></td>
<td><p>A delegate method that represents (is called by) the <a class="xref" href="Lucene.Net.Search.Filter.html#Lucene_Net_Search_Filter_GetDocIdSet_Lucene_Net_Index_AtomicReaderContext_Lucene_Net_Util_IBits_">GetDocIdSet(AtomicReaderContext, IBits)</a>
method. It accepts a <a class="xref" href="Lucene.Net.Index.AtomicReaderContext.html">AtomicReaderContext</a> context and a <a class="xref" href="Lucene.Net.Util.IBits.html">IBits</a> acceptDocs and
returns the <a class="xref" href="Lucene.Net.Search.DocIdSet.html">DocIdSet</a> for this filter.</p>
</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.Search.Filter.html">Filter</a></td>
<td></td>
</tr>
</tbody>
</table>
</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-beta00010/websites/apidocs/apiSpec/new?filename=Lucene_Net_Search_Filter.md&amp;value=---%0Auid%3A%20Lucene.Net.Search.Filter%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/release/Lucene.Net_4_8_0_beta00010/src/Lucene.Net/Search/Filter.cs/#L30" 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 Licensed to the Apache Software Foundation (ASF)
</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>