﻿<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
  
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>Namespace Lucene.Net.Analysis.Pt
   | Apache Lucene.NET 4.8.0-beta00013 Documentation </title>
    <meta name="viewport" content="width=device-width">
    <meta name="title" content="Namespace Lucene.Net.Analysis.Pt
   | 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="analysis-common/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.Analysis.Pt">
  
  <h1 id="Lucene_Net_Analysis_Pt" data-uid="Lucene.Net.Analysis.Pt" class="text-break">Namespace Lucene.Net.Analysis.Pt
  </h1>
  <div class="markdown level0 summary"><!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
 (the "License"); you may not use this file except in compliance with
 the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->
<p>Analyzer for Portuguese.</p>
</div>
  <div class="markdown level0 conceptual"></div>
  <div class="markdown level0 remarks"></div>
    <h3 id="classes">Classes
  </h3>
      <h4><a class="xref" href="Lucene.Net.Analysis.Pt.PortugueseAnalyzer.html">PortugueseAnalyzer</a></h4>
      <section><p><span class="xref">Lucene.Net.Analysis.Analyzer</span> for Portuguese.
<p>You must specify the required <span class="xref">Lucene.Net.Util.LuceneVersion</span>
compatibility when creating <a class="xref" href="Lucene.Net.Analysis.Pt.PortugueseAnalyzer.html">PortugueseAnalyzer</a>:
<ul><li> As of 3.6, PortugueseLightStemFilter is used for less aggressive stemming.</li></ul>
</p></p>
</section>
      <h4><a class="xref" href="Lucene.Net.Analysis.Pt.PortugueseLightStemFilter.html">PortugueseLightStemFilter</a></h4>
      <section><p>A <span class="xref">Lucene.Net.Analysis.TokenFilter</span> that applies <a class="xref" href="Lucene.Net.Analysis.Pt.PortugueseLightStemmer.html">PortugueseLightStemmer</a> to stem 
Portuguese words.
<p>
To prevent terms from being stemmed use an instance of
<a class="xref" href="Lucene.Net.Analysis.Miscellaneous.SetKeywordMarkerFilter.html">SetKeywordMarkerFilter</a> or a custom <span class="xref">Lucene.Net.Analysis.TokenFilter</span> that sets
the <a class="xref" href="https://lucenenet.apache.org/docs/4.8.0-beta00013/api/core/Lucene.Net.Analysis.TokenAttributes.KeywordAttribute.html">KeywordAttribute</a> before this <span class="xref">Lucene.Net.Analysis.TokenStream</span>.
</p></p>
</section>
      <h4><a class="xref" href="Lucene.Net.Analysis.Pt.PortugueseLightStemFilterFactory.html">PortugueseLightStemFilterFactory</a></h4>
      <section><p>Factory for <a class="xref" href="Lucene.Net.Analysis.Pt.PortugueseLightStemFilter.html">PortugueseLightStemFilter</a>.</p>
<pre><code>&lt;fieldType name=&quot;text_ptlgtstem&quot; class=&quot;solr.TextField&quot; positionIncrementGap=&quot;100&quot;>
  &lt;analyzer>
    &lt;tokenizer class=&quot;solr.StandardTokenizerFactory&quot;/>
    &lt;filter class=&quot;solr.LowerCaseFilterFactory&quot;/>
    &lt;filter class=&quot;solr.PortugueseLightStemFilterFactory&quot;/>
  &lt;/analyzer>
&lt;/fieldType></code></pre>
</section>
      <h4><a class="xref" href="Lucene.Net.Analysis.Pt.PortugueseLightStemmer.html">PortugueseLightStemmer</a></h4>
      <section><p>Light Stemmer for Portuguese
<p>
This stemmer implements the &quot;UniNE&quot; algorithm in:
<code>Light Stemming Approaches for the French, Portuguese, German and Hungarian Languages</code>
Jacques Savoy
</p></p>
</section>
      <h4><a class="xref" href="Lucene.Net.Analysis.Pt.PortugueseMinimalStemFilter.html">PortugueseMinimalStemFilter</a></h4>
      <section><p>A <span class="xref">Lucene.Net.Analysis.TokenFilter</span> that applies <a class="xref" href="Lucene.Net.Analysis.Pt.PortugueseMinimalStemmer.html">PortugueseMinimalStemmer</a> to stem 
Portuguese words.
<p>
To prevent terms from being stemmed use an instance of
<a class="xref" href="Lucene.Net.Analysis.Miscellaneous.SetKeywordMarkerFilter.html">SetKeywordMarkerFilter</a> or a custom <span class="xref">Lucene.Net.Analysis.TokenFilter</span> that sets
the <a class="xref" href="https://lucenenet.apache.org/docs/4.8.0-beta00013/api/core/Lucene.Net.Analysis.TokenAttributes.KeywordAttribute.html">KeywordAttribute</a> before this <span class="xref">Lucene.Net.Analysis.TokenStream</span>.
</p></p>
</section>
      <h4><a class="xref" href="Lucene.Net.Analysis.Pt.PortugueseMinimalStemFilterFactory.html">PortugueseMinimalStemFilterFactory</a></h4>
      <section><p>Factory for <a class="xref" href="Lucene.Net.Analysis.Pt.PortugueseMinimalStemFilter.html">PortugueseMinimalStemFilter</a>.</p>
<pre><code>&lt;fieldType name=&quot;text_ptminstem&quot; class=&quot;solr.TextField&quot; positionIncrementGap=&quot;100&quot;>
  &lt;analyzer>
    &lt;tokenizer class=&quot;solr.StandardTokenizerFactory&quot;/>
    &lt;filter class=&quot;solr.LowerCaseFilterFactory&quot;/>
    &lt;filter class=&quot;solr.PortugueseMinimalStemFilterFactory&quot;/>
  &lt;/analyzer>
&lt;/fieldType></code></pre>
</section>
      <h4><a class="xref" href="Lucene.Net.Analysis.Pt.PortugueseMinimalStemmer.html">PortugueseMinimalStemmer</a></h4>
      <section><p>Minimal Stemmer for Portuguese
<p>
This follows the &quot;RSLP-S&quot; algorithm presented in:
<code>A study on the Use of Stemming for Monolingual Ad-Hoc Portuguese
Information Retrieval</code> (Orengo, et al)
which is just the plural reduction step of the RSLP
algorithm from <code>A Stemming Algorithm for the Portuguese Language</code>,
Orengo et al.
</p></p>
</section>
      <h4><a class="xref" href="Lucene.Net.Analysis.Pt.PortugueseStemFilter.html">PortugueseStemFilter</a></h4>
      <section><p>A <span class="xref">Lucene.Net.Analysis.TokenFilter</span> that applies <a class="xref" href="Lucene.Net.Analysis.Pt.PortugueseStemmer.html">PortugueseStemmer</a> to stem 
Portuguese words.
<p>
To prevent terms from being stemmed use an instance of
<a class="xref" href="Lucene.Net.Analysis.Miscellaneous.SetKeywordMarkerFilter.html">SetKeywordMarkerFilter</a> or a custom <span class="xref">Lucene.Net.Analysis.TokenFilter</span> that sets
the <a class="xref" href="https://lucenenet.apache.org/docs/4.8.0-beta00013/api/core/Lucene.Net.Analysis.TokenAttributes.KeywordAttribute.html">KeywordAttribute</a> before this <span class="xref">Lucene.Net.Analysis.TokenStream</span>.
</p></p>
</section>
      <h4><a class="xref" href="Lucene.Net.Analysis.Pt.PortugueseStemFilterFactory.html">PortugueseStemFilterFactory</a></h4>
      <section><p>Factory for <a class="xref" href="Lucene.Net.Analysis.Pt.PortugueseStemFilter.html">PortugueseStemFilter</a>. </p>
<pre><code>&lt;fieldType name=&quot;text_ptstem&quot; class=&quot;solr.TextField&quot; positionIncrementGap=&quot;100&quot;>
  &lt;analyzer>
    &lt;tokenizer class=&quot;solr.StandardTokenizerFactory&quot;/>
    &lt;filter class=&quot;solr.LowerCaseFilterFactory&quot;/>
    &lt;filter class=&quot;solr.PortugueseStemFilterFactory&quot;/>
  &lt;/analyzer>
&lt;/fieldType></code></pre>
</section>
      <h4><a class="xref" href="Lucene.Net.Analysis.Pt.PortugueseStemmer.html">PortugueseStemmer</a></h4>
      <section><p>Portuguese stemmer implementing the RSLP (Removedor de Sufixos da Lingua Portuguesa)
algorithm. This is sometimes also referred to as the Orengo stemmer.</p>
</section>
      <h4><a class="xref" href="Lucene.Net.Analysis.Pt.RSLPStemmerBase.html">RSLPStemmerBase</a></h4>
      <section><p>Base class for stemmers that use a set of RSLP-like stemming steps.
<p>
RSLP (Removedor de Sufixos da Lingua Portuguesa) is an algorithm designed
originally for stemming the Portuguese language, described in the paper
<code>A Stemming Algorithm for the Portuguese Language</code>, Orengo et. al.
</p>
<p>
Since this time a plural-only modification (RSLP-S) as well as a modification
for the Galician language have been implemented. This class parses a configuration
file that describes <a class="xref" href="Lucene.Net.Analysis.Pt.RSLPStemmerBase.Step.html">RSLPStemmerBase.Step</a>s, where each <a class="xref" href="Lucene.Net.Analysis.Pt.RSLPStemmerBase.Step.html">RSLPStemmerBase.Step</a> contains a set of <a class="xref" href="Lucene.Net.Analysis.Pt.RSLPStemmerBase.Rule.html">RSLPStemmerBase.Rule</a>s.
</p>
<p>
The general rule format is: </p>
<pre><code>{ &quot;suffix&quot;, N, &quot;replacement&quot;, { &quot;exception1&quot;, &quot;exception2&quot;, ...}}</code></pre>
<p>where:
<ul><li><code>suffix</code> is the suffix to be removed (such as &quot;inho&quot;).</li><li><code>N</code> is the min stem size, where stem is defined as the candidate stem 
      after removing the suffix (but before appending the replacement!)</li><li><code>replacement</code> is an optimal string to append after removing the suffix.
      This can be the empty string.</li><li><code>exceptions</code> is an optional list of exceptions, patterns that should 
      not be stemmed. These patterns can be specified as whole word or suffix (ends-with) 
      patterns, depending upon the exceptions format flag in the step header.</li></ul>
</p>
<p>
A step is an ordered list of rules, with a structure in this format:
<blockquote>{ &quot;name&quot;, N, B, { &quot;cond1&quot;, &quot;cond2&quot;, ... }
              ... rules ... };
</blockquote>
where:
<ul><li><code>name</code> is a name for the step (such as &quot;Plural&quot;).</li><li><code>N</code> is the min word size. Words that are less than this length bypass
      the step completely, as an optimization. Note: N can be zero, in this case this 
      implementation will automatically calculate the appropriate value from the underlying 
      rules.</li><li><code>B</code> is a &quot;boolean&quot; flag specifying how exceptions in the rules are matched.
      A value of 1 indicates whole-word pattern matching, a value of 0 indicates that 
      exceptions are actually suffixes and should be matched with ends-with.</li><li><code>conds</code> are an optional list of conditions to enter the step at all. If
      the list is non-empty, then a word must end with one of these conditions or it will
      bypass the step completely as an optimization.</li></ul>
</p>
<a href="http://www.inf.ufrgs.br/~viviane/rslp/index.htm">RSLP description</a></p>
<div class="lucene-block lucene-internal">This is a Lucene.NET INTERNAL API, use at your own risk</div></section>
      <h4><a class="xref" href="Lucene.Net.Analysis.Pt.RSLPStemmerBase.Rule.html">RSLPStemmerBase.Rule</a></h4>
      <section><p>A basic rule, with no exceptions.</p>
</section>
      <h4><a class="xref" href="Lucene.Net.Analysis.Pt.RSLPStemmerBase.RuleWithSetExceptions.html">RSLPStemmerBase.RuleWithSetExceptions</a></h4>
      <section><p>A rule with a set of whole-word exceptions.</p>
</section>
      <h4><a class="xref" href="Lucene.Net.Analysis.Pt.RSLPStemmerBase.RuleWithSuffixExceptions.html">RSLPStemmerBase.RuleWithSuffixExceptions</a></h4>
      <section><p>A rule with a set of exceptional suffixes.</p>
</section>
      <h4><a class="xref" href="Lucene.Net.Analysis.Pt.RSLPStemmerBase.Step.html">RSLPStemmerBase.Step</a></h4>
      <section><p>A step containing a list of rules.</p>
</section>
</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/blob/docs/4.8.0-beta00013/src/Lucene.Net.Analysis.Common/Analysis/Pt/package.md/#L2" class="contribution-link">Improve this Doc</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>
