public virtual void TestMaxPosition3WithSynomyms() { foreach (bool consumeAll in new bool[] { true, false }) { MockTokenizer tokenizer = new MockTokenizer(new StringReader("one two three four five"), MockTokenizer.WHITESPACE, false); // if we are consuming all tokens, we can use the checks, otherwise we can't tokenizer.EnableChecks = consumeAll; SynonymMap.Builder builder = new SynonymMap.Builder(true); builder.Add(new CharsRef("one"), new CharsRef("first"), true); builder.Add(new CharsRef("one"), new CharsRef("alpha"), true); builder.Add(new CharsRef("one"), new CharsRef("beguine"), true); CharsRef multiWordCharsRef = new CharsRef(); SynonymMap.Builder.Join(new string[] { "and", "indubitably", "single", "only" }, multiWordCharsRef); builder.Add(new CharsRef("one"), multiWordCharsRef, true); SynonymMap.Builder.Join(new string[] { "dopple", "ganger" }, multiWordCharsRef); builder.Add(new CharsRef("two"), multiWordCharsRef, true); SynonymMap synonymMap = builder.Build(); TokenStream stream = new SynonymFilter(tokenizer, synonymMap, true); stream = new LimitTokenPositionFilter(stream, 3, consumeAll); // "only", the 4th word of multi-word synonym "and indubitably single only" is not emitted, since its position is greater than 3. AssertTokenStreamContents(stream, new string[] { "one", "first", "alpha", "beguine", "and", "two", "indubitably", "dopple", "three", "single", "ganger" }, new int[] { 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0 }); } }
/// <summary> /// blast some random strings through the analyzer </summary> //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: //ORIGINAL LINE: public void testRandomStrings() throws Exception public virtual void testRandomStrings() { //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final int numIters = atLeast(10); int numIters = atLeast(10); for (int i = 0; i < numIters; i++) { SynonymMap.Builder b = new SynonymMap.Builder(random().nextBoolean()); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final int numEntries = atLeast(10); int numEntries = atLeast(10); for (int j = 0; j < numEntries; j++) { add(b, randomNonEmptyString(), randomNonEmptyString(), random().nextBoolean()); } //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.apache.lucene.analysis.synonym.SynonymMap map = b.build(); SynonymMap map = b.build(); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final boolean ignoreCase = random().nextBoolean(); bool ignoreCase = random().nextBoolean(); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.apache.lucene.analysis.Analyzer analyzer = new org.apache.lucene.analysis.Analyzer() Analyzer analyzer = new AnalyzerAnonymousInnerClassHelper(this, map, ignoreCase); checkRandomData(random(), analyzer, 200); } }
public virtual void TestRandomStrings() { int numIters = AtLeast(10); for (int i = 0; i < numIters; i++) { SynonymMap.Builder b = new SynonymMap.Builder(Random.nextBoolean()); int numEntries = AtLeast(10); for (int j = 0; j < numEntries; j++) { Add(b, RandomNonEmptyString(), RandomNonEmptyString(), Random.nextBoolean()); } SynonymMap map = b.Build(); bool ignoreCase = Random.nextBoolean(); Analyzer analyzer = Analyzer.NewAnonymous(createComponents: (fieldName, reader) => { Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.SIMPLE, true); TokenStream stream = new SynonymFilter(tokenizer, map, ignoreCase); return(new TokenStreamComponents(tokenizer, new RemoveDuplicatesTokenFilter(stream))); }); CheckRandomData(Random, analyzer, 200); } }
public object Create(Random random) { SynonymMap.Builder b = new SynonymMap.Builder(random.nextBoolean()); int numEntries = AtLeast(10); for (int j = 0; j < numEntries; j++) { AddSyn(b, RandomNonEmptyString(random), RandomNonEmptyString(random), random.nextBoolean()); } try { return(b.Build()); } catch (Exception ex) { throw ex; return(null); // unreachable code } }
public virtual void TestRandomStrings() { int numIters = AtLeast(10); for (int i = 0; i < numIters; i++) { SynonymMap.Builder b = new SynonymMap.Builder(Random.nextBoolean()); int numEntries = AtLeast(10); for (int j = 0; j < numEntries; j++) { Add(b, RandomNonEmptyString(), RandomNonEmptyString(), Random.nextBoolean()); } SynonymMap map = b.Build(); bool ignoreCase = Random.nextBoolean(); Analyzer analyzer = new AnalyzerAnonymousInnerClassHelper(this, map, ignoreCase); CheckRandomData(Random, analyzer, 200); } }
public object Create(Random random) { SynonymMap.Builder b = new SynonymMap.Builder(random.nextBoolean()); int numEntries = AtLeast(10); for (int j = 0; j < numEntries; j++) { AddSyn(b, RandomNonEmptyString(random), RandomNonEmptyString(random), random.nextBoolean()); } try { return(b.Build()); } catch (Exception /*ex*/) { throw; // LUCENENET: CA2200: Rethrow to preserve stack details (https://docs.microsoft.com/en-us/visualstudio/code-quality/ca2200-rethrow-to-preserve-stack-details) #pragma warning disable 162 return(null); // unreachable code #pragma warning restore 162 } }
private void Add(SynonymMap.Builder b, string input, string output, bool keepOrig) { b.Add(new CharsRef(Regex.Replace(input, " +", "\u0000")), new CharsRef(Regex.Replace(output, " +", "\u0000")), keepOrig); }
private void add(SynonymMap.Builder b, string input, string output, bool keepOrig) { b.add(new CharsRef(input.replaceAll(" +", "\u0000")), new CharsRef(output.replaceAll(" +", "\u0000")), keepOrig); }