<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>org.apache.hadoop.hbase.filter (Apache HBase 3.0.0-alpha-2-SNAPSHOT API)</title>
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="org.apache.hadoop.hbase.filter (Apache HBase 3.0.0-alpha-2-SNAPSHOT API)";
        }
    }
    catch(err) {
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-use.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/hadoop/hbase/favored/package-summary.html">Prev&nbsp;Package</a></li>
<li><a href="../../../../../org/apache/hadoop/hbase/fs/package-summary.html">Next&nbsp;Package</a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/hadoop/hbase/filter/package-summary.html" target="_top">Frames</a></li>
<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 title="Package" class="title">Package&nbsp;org.apache.hadoop.hbase.filter</h1>
<div class="docSummary">
<div class="block">Provides row-level filters applied to HRegion scan results during calls to
 <a href="../../../../../org/apache/hadoop/hbase/client/ResultScanner.html#next--"><code>ResultScanner.next()</code></a>.</div>
</div>
<p>See:&nbsp;<a href="#package.description">Description</a></p>
</div>
<div class="contentContainer">
<ul class="blockList">
<li class="blockList">
<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Interface</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/RegexStringComparator.Engine.html" title="interface in org.apache.hadoop.hbase.filter">RegexStringComparator.Engine</a></td>
<td class="colLast">
<div class="block">This is an internal interface for abstracting access to different regular
 expression matching engines.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/BigDecimalComparator.html" title="class in org.apache.hadoop.hbase.filter">BigDecimalComparator</a></td>
<td class="colLast">
<div class="block">A BigDecimal comparator which numerical compares against the specified byte array</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/BinaryComparator.html" title="class in org.apache.hadoop.hbase.filter">BinaryComparator</a></td>
<td class="colLast">
<div class="block">A binary comparator which lexicographically compares against the specified
 byte array using <a href="../../../../../org/apache/hadoop/hbase/util/Bytes.html#compareTo-byte:A-byte:A-"><code>Bytes.compareTo(byte[], byte[])</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/BinaryComponentComparator.html" title="class in org.apache.hadoop.hbase.filter">BinaryComponentComparator</a></td>
<td class="colLast">
<div class="block">A comparator which compares against a specified byte array, but only
 compares specific portion of the byte array.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/BinaryPrefixComparator.html" title="class in org.apache.hadoop.hbase.filter">BinaryPrefixComparator</a></td>
<td class="colLast">
<div class="block">A comparator which compares against a specified byte array, but only compares
 up to the length of this byte array.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/BitComparator.html" title="class in org.apache.hadoop.hbase.filter">BitComparator</a></td>
<td class="colLast">
<div class="block">A bit comparator which performs the specified bitwise operation on each of the bytes
 with the specified byte array.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/ByteArrayComparable.html" title="class in org.apache.hadoop.hbase.filter">ByteArrayComparable</a></td>
<td class="colLast">
<div class="block">Base class for byte array comparators</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnCountGetFilter.html" title="class in org.apache.hadoop.hbase.filter">ColumnCountGetFilter</a></td>
<td class="colLast">
<div class="block">Simple filter that returns first N columns on row only.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnPaginationFilter.html" title="class in org.apache.hadoop.hbase.filter">ColumnPaginationFilter</a></td>
<td class="colLast">
<div class="block">A filter, based on the ColumnCountGetFilter, takes two arguments: limit and offset.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnPrefixFilter.html" title="class in org.apache.hadoop.hbase.filter">ColumnPrefixFilter</a></td>
<td class="colLast">
<div class="block">This filter is used for selecting only those keys with columns that matches
 a particular prefix.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnRangeFilter.html" title="class in org.apache.hadoop.hbase.filter">ColumnRangeFilter</a></td>
<td class="colLast">
<div class="block">This filter is used for selecting only those keys with columns that are
 between minColumn to maxColumn.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/ColumnValueFilter.html" title="class in org.apache.hadoop.hbase.filter">ColumnValueFilter</a></td>
<td class="colLast">
<div class="block">Different from <a href="../../../../../org/apache/hadoop/hbase/filter/SingleColumnValueFilter.html" title="class in org.apache.hadoop.hbase.filter"><code>SingleColumnValueFilter</code></a> which returns an <b>entire</b> row
 when specified condition is matched, <a href="../../../../../org/apache/hadoop/hbase/filter/ColumnValueFilter.html" title="class in org.apache.hadoop.hbase.filter"><code>ColumnValueFilter</code></a> return the matched cell only.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/CompareFilter.html" title="class in org.apache.hadoop.hbase.filter">CompareFilter</a></td>
<td class="colLast">
<div class="block">This is a generic filter to be used to filter by comparison.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/DependentColumnFilter.html" title="class in org.apache.hadoop.hbase.filter">DependentColumnFilter</a></td>
<td class="colLast">
<div class="block">A filter for adding inter-column timestamp matching
 Only cells with a correspondingly timestamped entry in
 the target column will be retained
 Not compatible with Scan.setBatch as operations need 
 full rows for correct filtering</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/FamilyFilter.html" title="class in org.apache.hadoop.hbase.filter">FamilyFilter</a></td>
<td class="colLast">
<div class="block">
 This filter is used to filter based on the column family.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a></td>
<td class="colLast">
<div class="block">Interface for row and column filters directly applied within the regionserver.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/FilterBase.html" title="class in org.apache.hadoop.hbase.filter">FilterBase</a></td>
<td class="colLast">
<div class="block">Abstract base class to help you implement new Filters.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.html" title="class in org.apache.hadoop.hbase.filter">FilterList</a></td>
<td class="colLast">
<div class="block">Implementation of <a href="../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter"><code>Filter</code></a> that represents an ordered List of Filters which will be
 evaluated with a specified boolean operator <a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.Operator.html#MUST_PASS_ALL"><code>FilterList.Operator.MUST_PASS_ALL</code></a> (<code>AND</code>) or
 <a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.Operator.html#MUST_PASS_ONE"><code>FilterList.Operator.MUST_PASS_ONE</code></a> (<code>OR</code>).</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/FilterListBase.html" title="class in org.apache.hadoop.hbase.filter">FilterListBase</a></td>
<td class="colLast">
<div class="block">Base class for FilterList.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/FilterListWithAND.html" title="class in org.apache.hadoop.hbase.filter">FilterListWithAND</a></td>
<td class="colLast">
<div class="block">FilterListWithAND represents an ordered list of filters which will be evaluated with an AND
 operator.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/FilterListWithOR.html" title="class in org.apache.hadoop.hbase.filter">FilterListWithOR</a></td>
<td class="colLast">
<div class="block">FilterListWithOR represents an ordered list of filters which will be evaluated with an OR
 operator.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/FilterWrapper.html" title="class in org.apache.hadoop.hbase.filter">FilterWrapper</a></td>
<td class="colLast">
<div class="block">This is a Filter wrapper class which is used in the server side.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/FirstKeyOnlyFilter.html" title="class in org.apache.hadoop.hbase.filter">FirstKeyOnlyFilter</a></td>
<td class="colLast">
<div class="block">A filter that will only return the first KV from each row.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/FirstKeyValueMatchingQualifiersFilter.html" title="class in org.apache.hadoop.hbase.filter">FirstKeyValueMatchingQualifiersFilter</a></td>
<td class="colLast">Deprecated
<div class="block"><span class="deprecationComment">Deprecated in 2.0.0 and will be removed in 3.0.0.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.html" title="class in org.apache.hadoop.hbase.filter">FuzzyRowFilter</a></td>
<td class="colLast">
<div class="block">This is optimized version of a standard FuzzyRowFilter Filters data based on fuzzy row key.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/InclusiveStopFilter.html" title="class in org.apache.hadoop.hbase.filter">InclusiveStopFilter</a></td>
<td class="colLast">
<div class="block">A Filter that stops after the given row.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/KeyOnlyFilter.html" title="class in org.apache.hadoop.hbase.filter">KeyOnlyFilter</a></td>
<td class="colLast">
<div class="block">A filter that will only return the key component of each KV (the value will
 be rewritten as empty).</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/KeyOnlyFilter.KeyOnlyByteBufferExtendedCell.html" title="class in org.apache.hadoop.hbase.filter">KeyOnlyFilter.KeyOnlyByteBufferExtendedCell</a></td>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/KeyOnlyFilter.KeyOnlyCell.html" title="class in org.apache.hadoop.hbase.filter">KeyOnlyFilter.KeyOnlyCell</a></td>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/LongComparator.html" title="class in org.apache.hadoop.hbase.filter">LongComparator</a></td>
<td class="colLast">
<div class="block">A long comparator which numerical compares against the specified byte array</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/MultipleColumnPrefixFilter.html" title="class in org.apache.hadoop.hbase.filter">MultipleColumnPrefixFilter</a></td>
<td class="colLast">
<div class="block">This filter is used for selecting only those keys with columns that matches
 a particular prefix.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/MultiRowRangeFilter.html" title="class in org.apache.hadoop.hbase.filter">MultiRowRangeFilter</a></td>
<td class="colLast">
<div class="block">Filter to support scan multiple row key ranges.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/MultiRowRangeFilter.BasicRowRange.html" title="class in org.apache.hadoop.hbase.filter">MultiRowRangeFilter.BasicRowRange</a></td>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/MultiRowRangeFilter.RangeIteration.html" title="class in org.apache.hadoop.hbase.filter">MultiRowRangeFilter.RangeIteration</a></td>
<td class="colLast">
<div class="block">Abstraction over the ranges of rows to return from this filter, regardless of forward or
 reverse scans being used.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/MultiRowRangeFilter.ReversedRowRange.html" title="class in org.apache.hadoop.hbase.filter">MultiRowRangeFilter.ReversedRowRange</a></td>
<td class="colLast">
<div class="block">Internal RowRange that reverses the sort-order to handle reverse scans.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/MultiRowRangeFilter.RowRange.html" title="class in org.apache.hadoop.hbase.filter">MultiRowRangeFilter.RowRange</a></td>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/NullComparator.html" title="class in org.apache.hadoop.hbase.filter">NullComparator</a></td>
<td class="colLast">
<div class="block">A binary comparator which lexicographically compares against the specified
 byte array using <a href="../../../../../org/apache/hadoop/hbase/util/Bytes.html#compareTo-byte:A-byte:A-"><code>Bytes.compareTo(byte[], byte[])</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/PageFilter.html" title="class in org.apache.hadoop.hbase.filter">PageFilter</a></td>
<td class="colLast">
<div class="block">Implementation of Filter interface that limits results to a specific page
 size.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/ParseConstants.html" title="class in org.apache.hadoop.hbase.filter">ParseConstants</a></td>
<td class="colLast">
<div class="block">ParseConstants holds a bunch of constants related to parsing Filter Strings
 Used by <a href="../../../../../org/apache/hadoop/hbase/filter/ParseFilter.html" title="class in org.apache.hadoop.hbase.filter"><code>ParseFilter</code></a></div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/ParseFilter.html" title="class in org.apache.hadoop.hbase.filter">ParseFilter</a></td>
<td class="colLast">
<div class="block">This class allows a user to specify a filter via a string
 The string is parsed using the methods of this class and
 a filter object is constructed.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/PrefixFilter.html" title="class in org.apache.hadoop.hbase.filter">PrefixFilter</a></td>
<td class="colLast">
<div class="block">Pass results that have same row prefix.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/QualifierFilter.html" title="class in org.apache.hadoop.hbase.filter">QualifierFilter</a></td>
<td class="colLast">
<div class="block">This filter is used to filter based on the column qualifier.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/RandomRowFilter.html" title="class in org.apache.hadoop.hbase.filter">RandomRowFilter</a></td>
<td class="colLast">
<div class="block">A filter that includes rows based on a chance.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/RegexStringComparator.html" title="class in org.apache.hadoop.hbase.filter">RegexStringComparator</a></td>
<td class="colLast">
<div class="block">This comparator is for use with <a href="../../../../../org/apache/hadoop/hbase/filter/CompareFilter.html" title="class in org.apache.hadoop.hbase.filter"><code>CompareFilter</code></a> implementations, such
 as <a href="../../../../../org/apache/hadoop/hbase/filter/RowFilter.html" title="class in org.apache.hadoop.hbase.filter"><code>RowFilter</code></a>, <a href="../../../../../org/apache/hadoop/hbase/filter/QualifierFilter.html" title="class in org.apache.hadoop.hbase.filter"><code>QualifierFilter</code></a>, and <a href="../../../../../org/apache/hadoop/hbase/filter/ValueFilter.html" title="class in org.apache.hadoop.hbase.filter"><code>ValueFilter</code></a>, for
 filtering based on the value of a given column.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/RegexStringComparator.JavaRegexEngine.html" title="class in org.apache.hadoop.hbase.filter">RegexStringComparator.JavaRegexEngine</a></td>
<td class="colLast">
<div class="block">Implementation of the Engine interface using Java's Pattern.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/RegexStringComparator.JoniRegexEngine.html" title="class in org.apache.hadoop.hbase.filter">RegexStringComparator.JoniRegexEngine</a></td>
<td class="colLast">
<div class="block">Implementation of the Engine interface using Jruby's joni regex engine.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/RowFilter.html" title="class in org.apache.hadoop.hbase.filter">RowFilter</a></td>
<td class="colLast">
<div class="block">This filter is used to filter based on the key.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/SingleColumnValueExcludeFilter.html" title="class in org.apache.hadoop.hbase.filter">SingleColumnValueExcludeFilter</a></td>
<td class="colLast">
<div class="block">A <a href="../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter"><code>Filter</code></a> that checks a single column value, but does not emit the
 tested column.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/SingleColumnValueFilter.html" title="class in org.apache.hadoop.hbase.filter">SingleColumnValueFilter</a></td>
<td class="colLast">
<div class="block">This filter is used to filter cells based on value.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/SkipFilter.html" title="class in org.apache.hadoop.hbase.filter">SkipFilter</a></td>
<td class="colLast">
<div class="block">A wrapper filter that filters an entire row if any of the Cell checks do
 not pass.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/SubstringComparator.html" title="class in org.apache.hadoop.hbase.filter">SubstringComparator</a></td>
<td class="colLast">
<div class="block">This comparator is for use with SingleColumnValueFilter, for filtering based on
 the value of a given column.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/TimestampsFilter.html" title="class in org.apache.hadoop.hbase.filter">TimestampsFilter</a></td>
<td class="colLast">
<div class="block">Filter that returns only cells whose timestamp (version) is
 in the specified list of timestamps (versions).</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/ValueFilter.html" title="class in org.apache.hadoop.hbase.filter">ValueFilter</a></td>
<td class="colLast">
<div class="block">This filter is used to filter based on column value.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/WhileMatchFilter.html" title="class in org.apache.hadoop.hbase.filter">WhileMatchFilter</a></td>
<td class="colLast">
<div class="block">A wrapper filter that returns true from <a href="../../../../../org/apache/hadoop/hbase/filter/WhileMatchFilter.html#filterAllRemaining--"><code>WhileMatchFilter.filterAllRemaining()</code></a> as soon
 as the wrapped filters <a href="../../../../../org/apache/hadoop/hbase/filter/Filter.html#filterRowKey-org.apache.hadoop.hbase.Cell-"><code>Filter.filterRowKey(Cell)</code></a>,
 <a href="../../../../../org/apache/hadoop/hbase/filter/Filter.html#filterCell-org.apache.hadoop.hbase.Cell-"><code>Filter.filterCell(org.apache.hadoop.hbase.Cell)</code></a>,
 <a href="../../../../../org/apache/hadoop/hbase/filter/Filter.html#filterRow--"><code>Filter.filterRow()</code></a> or
 <a href="../../../../../org/apache/hadoop/hbase/filter/Filter.html#filterAllRemaining--"><code>Filter.filterAllRemaining()</code></a> methods
 returns true.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Summary table, listing enums, and an explanation">
<caption><span>Enum Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Enum</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/BitComparator.BitwiseOp.html" title="enum in org.apache.hadoop.hbase.filter">BitComparator.BitwiseOp</a></td>
<td class="colLast">
<div class="block">Bit operators.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter">Filter.ReturnCode</a></td>
<td class="colLast">
<div class="block">Return codes for filterValue().</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.Operator.html" title="enum in org.apache.hadoop.hbase.filter">FilterList.Operator</a></td>
<td class="colLast">
<div class="block">set operator</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/FilterWrapper.FilterRowRetCode.html" title="enum in org.apache.hadoop.hbase.filter">FilterWrapper.FilterRowRetCode</a></td>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.Order.html" title="enum in org.apache.hadoop.hbase.filter">FuzzyRowFilter.Order</a></td>
<td class="colLast">
<div class="block">Abstracts directional comparisons based on scan direction.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.SatisfiesCode.html" title="enum in org.apache.hadoop.hbase.filter">FuzzyRowFilter.SatisfiesCode</a></td>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/RegexStringComparator.EngineType.html" title="enum in org.apache.hadoop.hbase.filter">RegexStringComparator.EngineType</a></td>
<td class="colLast">
<div class="block">Engine implementation type (default=JAVA)</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Exception Summary table, listing exceptions, and an explanation">
<caption><span>Exception Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Exception</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/IncompatibleFilterException.html" title="class in org.apache.hadoop.hbase.filter">IncompatibleFilterException</a></td>
<td class="colLast">
<div class="block">Used to indicate a filter incompatibility</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/filter/InvalidRowFilterException.html" title="class in org.apache.hadoop.hbase.filter">InvalidRowFilterException</a></td>
<td class="colLast">
<div class="block">Used to indicate an invalid RowFilter.</div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
<a name="package.description">
<!--   -->
</a>
<h2 title="Package org.apache.hadoop.hbase.filter Description">Package org.apache.hadoop.hbase.filter Description</h2>
<div class="block">Provides row-level filters applied to HRegion scan results during calls to
 <a href="../../../../../org/apache/hadoop/hbase/client/ResultScanner.html#next--"><code>ResultScanner.next()</code></a>.

<p>
Filters run the extent of a table unless you wrap your filter in a
<a href="../../../../../org/apache/hadoop/hbase/filter/WhileMatchFilter.html" title="class in org.apache.hadoop.hbase.filter"><code>WhileMatchFilter</code></a>.
The latter returns as soon as the filter stops matching.
</p>
<p>Do not rely on filters carrying state across rows; its not reliable in current
hbase as we have no handlers in place for when regions split, close or server
crashes.
</p></div>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-use.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/hadoop/hbase/favored/package-summary.html">Prev&nbsp;Package</a></li>
<li><a href="../../../../../org/apache/hadoop/hbase/fs/package-summary.html">Next&nbsp;Package</a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/hadoop/hbase/filter/package-summary.html" target="_top">Frames</a></li>
<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2021 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>
