blob: 620bf6f1e4423545f6b5ed2e77acba28bf226220 [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 Metaphone
| Apache Lucene.NET 4.8.0-beta00010 Documentation </title>
<meta name="viewport" content="width=device-width">
<meta name="title" content="Class Metaphone
| 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="analysis-phonetic/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.Analysis.Phonetic.Language.Metaphone">
<h1 id="Lucene_Net_Analysis_Phonetic_Language_Metaphone" data-uid="Lucene.Net.Analysis.Phonetic.Language.Metaphone" class="text-break">Class Metaphone
</h1>
<div class="markdown level0 summary"><p>Encodes a string into a Metaphone value.
<p>
Initial Java implementation by <code>William B. Brogden. December, 1997</code>.
Permission given by <code>wbrogden</code> for code to be used anywhere.
<p>
<code>Hanging on the Metaphone</code> by <code>Lawrence Philips</code> in <code>Computer Language of Dec. 1990,
p 39.</code>
<p>
Note, that this does not match the algorithm that ships with PHP, or the algorithm found in the Perl implementations:
<p>
<ul><li><a href="http://search.cpan.org/~mschwern/Text-Metaphone-1.96/Metaphone.pm">Text:Metaphone-1.96</a> (broken link 4/30/2013) </li><li><a href="https://metacpan.org/source/MSCHWERN/Text-Metaphone-1.96//Metaphone.pm">Text:Metaphone-1.96</a> (link checked 4/30/2013) </li></ul>
<p>
They have had undocumented changes from the originally published algorithm.
For more information, see <a href="https://issues.apache.org/jira/browse/CODEC-57">CODEC-57</a>.
<p>
This class is conditionally thread-safe.
The instance field <span class="xref">Lucene.Net.Analysis.Phonetic.Language.Metaphone.maxCodeLen</span> is mutable <a class="xref" href="Lucene.Net.Analysis.Phonetic.Language.Metaphone.html#Lucene_Net_Analysis_Phonetic_Language_Metaphone_MaxCodeLen">MaxCodeLen</a>
but is not volatile, and accesses are not synchronized.
If an instance of the class is shared between threads, the caller needs to ensure that suitable synchronization
is used to ensure safe publication of the value between threads, and must not set <a class="xref" href="Lucene.Net.Analysis.Phonetic.Language.Metaphone.html#Lucene_Net_Analysis_Phonetic_Language_Metaphone_MaxCodeLen">MaxCodeLen</a>
after initial setup.</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">Metaphone</span></div>
</div>
<div classs="implements">
<h5>Implements</h5>
<div><a class="xref" href="Lucene.Net.Analysis.Phonetic.Language.IStringEncoder.html">IStringEncoder</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.Analysis.Phonetic.Language.html">Lucene.Net.Analysis.Phonetic.Language</a></h6>
<h6><strong>Assembly</strong>: Lucene.Net.Analysis.Phonetic.dll</h6>
<h5 id="Lucene_Net_Analysis_Phonetic_Language_Metaphone_syntax">Syntax</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public class Metaphone : IStringEncoder</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-beta00010/websites/apidocs/apiSpec/new?filename=Lucene_Net_Analysis_Phonetic_Language_Metaphone__ctor.md&amp;value=---%0Auid%3A%20Lucene.Net.Analysis.Phonetic.Language.Metaphone.%23ctor%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.Analysis.Phonetic/Language/Metaphone.cs/#L76">View Source</a>
</span>
<a id="Lucene_Net_Analysis_Phonetic_Language_Metaphone__ctor_" data-uid="Lucene.Net.Analysis.Phonetic.Language.Metaphone.#ctor*"></a>
<h4 id="Lucene_Net_Analysis_Phonetic_Language_Metaphone__ctor" data-uid="Lucene.Net.Analysis.Phonetic.Language.Metaphone.#ctor">Metaphone()</h4>
<div class="markdown level1 summary"><p>Creates an instance of the <a class="xref" href="Lucene.Net.Analysis.Phonetic.Language.Metaphone.html">Metaphone</a> encoder</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Metaphone()</code></pre>
</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-beta00010/websites/apidocs/apiSpec/new?filename=Lucene_Net_Analysis_Phonetic_Language_Metaphone_MaxCodeLen.md&amp;value=---%0Auid%3A%20Lucene.Net.Analysis.Phonetic.Language.Metaphone.MaxCodeLen%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.Analysis.Phonetic/Language/Metaphone.cs/#L491">View Source</a>
</span>
<a id="Lucene_Net_Analysis_Phonetic_Language_Metaphone_MaxCodeLen_" data-uid="Lucene.Net.Analysis.Phonetic.Language.Metaphone.MaxCodeLen*"></a>
<h4 id="Lucene_Net_Analysis_Phonetic_Language_Metaphone_MaxCodeLen" data-uid="Lucene.Net.Analysis.Phonetic.Language.Metaphone.MaxCodeLen">MaxCodeLen</h4>
<div class="markdown level1 summary"><p>Gets or Sets <span class="xref">Lucene.Net.Analysis.Phonetic.Language.Metaphone.maxCodeLen</span>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public virtual int MaxCodeLen { get; set; }</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>
<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_Analysis_Phonetic_Language_Metaphone_Encode_System_String_.md&amp;value=---%0Auid%3A%20Lucene.Net.Analysis.Phonetic.Language.Metaphone.Encode(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/release/Lucene.Net_4_8_0_beta00010/src/Lucene.Net.Analysis.Phonetic/Language/Metaphone.cs/#L472">View Source</a>
</span>
<a id="Lucene_Net_Analysis_Phonetic_Language_Metaphone_Encode_" data-uid="Lucene.Net.Analysis.Phonetic.Language.Metaphone.Encode*"></a>
<h4 id="Lucene_Net_Analysis_Phonetic_Language_Metaphone_Encode_System_String_" data-uid="Lucene.Net.Analysis.Phonetic.Language.Metaphone.Encode(System.String)">Encode(String)</h4>
<div class="markdown level1 summary"><p>Encodes a string using the <a class="xref" href="Lucene.Net.Analysis.Phonetic.Language.Metaphone.html">Metaphone</a> algorithm.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public virtual string Encode(string str)</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">str</span></td>
<td><p>String to encode.</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><span class="xref">System.String</span></td>
<td><p>The metaphone code corresponding to the string supplied.</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_Analysis_Phonetic_Language_Metaphone_GetMetaphone_System_String_.md&amp;value=---%0Auid%3A%20Lucene.Net.Analysis.Phonetic.Language.Metaphone.GetMetaphone(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/release/Lucene.Net_4_8_0_beta00010/src/Lucene.Net.Analysis.Phonetic/Language/Metaphone.cs/#L92">View Source</a>
</span>
<a id="Lucene_Net_Analysis_Phonetic_Language_Metaphone_GetMetaphone_" data-uid="Lucene.Net.Analysis.Phonetic.Language.Metaphone.GetMetaphone*"></a>
<h4 id="Lucene_Net_Analysis_Phonetic_Language_Metaphone_GetMetaphone_System_String_" data-uid="Lucene.Net.Analysis.Phonetic.Language.Metaphone.GetMetaphone(System.String)">GetMetaphone(String)</h4>
<div class="markdown level1 summary"><p>Find the metaphone value of a string. This is similar to the
soundex algorithm, but better at finding similar sounding words.
All input is converted to upper case.
Limitations: Input format is expected to be a single ASCII word
with only characters in the A - Z range, no punctuation or numbers.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public virtual string GetMetaphone(string txt)</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">txt</span></td>
<td><p>String to find the metaphone code for.</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><span class="xref">System.String</span></td>
<td><p>A metaphone code corresponding to the string supplied.</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_Analysis_Phonetic_Language_Metaphone_IsMetaphoneEqual_System_String_System_String_.md&amp;value=---%0Auid%3A%20Lucene.Net.Analysis.Phonetic.Language.Metaphone.IsMetaphoneEqual(System.String%2CSystem.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/release/Lucene.Net_4_8_0_beta00010/src/Lucene.Net.Analysis.Phonetic/Language/Metaphone.cs/#L483">View Source</a>
</span>
<a id="Lucene_Net_Analysis_Phonetic_Language_Metaphone_IsMetaphoneEqual_" data-uid="Lucene.Net.Analysis.Phonetic.Language.Metaphone.IsMetaphoneEqual*"></a>
<h4 id="Lucene_Net_Analysis_Phonetic_Language_Metaphone_IsMetaphoneEqual_System_String_System_String_" data-uid="Lucene.Net.Analysis.Phonetic.Language.Metaphone.IsMetaphoneEqual(System.String,System.String)">IsMetaphoneEqual(String, String)</h4>
<div class="markdown level1 summary"><p>Tests is the metaphones of two strings are identical.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public virtual bool IsMetaphoneEqual(string str1, string str2)</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">str1</span></td>
<td><p>First of two strings to compare.</p>
</td>
</tr>
<tr>
<td><span class="xref">System.String</span></td>
<td><span class="parametername">str2</span></td>
<td><p>Second of two strings to compare.</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><span class="xref">System.Boolean</span></td>
<td><p><code>true</code> if the metaphones of these strings are identical, <code>false</code> otherwise.</p>
</td>
</tr>
</tbody>
</table>
<h3 id="implements">Implements</h3>
<div>
<a class="xref" href="Lucene.Net.Analysis.Phonetic.Language.IStringEncoder.html">IStringEncoder</a>
</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-beta00010/websites/apidocs/apiSpec/new?filename=Lucene_Net_Analysis_Phonetic_Language_Metaphone.md&amp;value=---%0Auid%3A%20Lucene.Net.Analysis.Phonetic.Language.Metaphone%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.Analysis.Phonetic/Language/Metaphone.cs/#L51" 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>