|
@@ -110,20 +110,24 @@ public class NoisyChannelSpellCheckerTests extends ESTestCase {
|
|
|
}
|
|
|
|
|
|
DirectoryReader ir = DirectoryReader.open(writer);
|
|
|
- WordScorer wordScorer = new LaplaceScorer(ir, MultiFields.getTerms(ir, "body_ngram"), "body_ngram", 0.95d, new BytesRef(" "), 0.5f);
|
|
|
+ WordScorer wordScorer = new LaplaceScorer(ir, MultiFields.getTerms(ir, "body_ngram"), "body_ngram", 0.95d,
|
|
|
+ new BytesRef(" "), 0.5f);
|
|
|
|
|
|
NoisyChannelSpellChecker suggester = new NoisyChannelSpellChecker();
|
|
|
DirectSpellChecker spellchecker = new DirectSpellChecker();
|
|
|
spellchecker.setMinQueryLength(1);
|
|
|
- DirectCandidateGenerator generator = new DirectCandidateGenerator(spellchecker, "body", SuggestMode.SUGGEST_MORE_POPULAR, ir, 0.95, 5);
|
|
|
- Result result = suggester.getCorrections(wrapper, new BytesRef("american ame"), generator, 1, 1, ir, "body", wordScorer, 1, 2);
|
|
|
+ DirectCandidateGenerator generator = new DirectCandidateGenerator(spellchecker, "body", SuggestMode.SUGGEST_MORE_POPULAR,
|
|
|
+ ir, 0.95, 5);
|
|
|
+ Result result = suggester.getCorrections(wrapper, new BytesRef("american ame"), generator, 1, 1,
|
|
|
+ ir, "body", wordScorer, 1, 2);
|
|
|
Correction[] corrections = result.corrections;
|
|
|
assertThat(corrections.length, equalTo(1));
|
|
|
assertThat(corrections[0].join(space).utf8ToString(), equalTo("american ace"));
|
|
|
assertThat(corrections[0].join(space, preTag, postTag).utf8ToString(), equalTo("american <em>ace</em>"));
|
|
|
assertThat(result.cutoffScore, greaterThan(0d));
|
|
|
|
|
|
- result = suggester.getCorrections(wrapper, new BytesRef("american ame"), generator, 1, 1, ir, "body", wordScorer, 0, 1);
|
|
|
+ result = suggester.getCorrections(wrapper, new BytesRef("american ame"), generator, 1, 1,
|
|
|
+ ir, "body", wordScorer, 0, 1);
|
|
|
corrections = result.corrections;
|
|
|
assertThat(corrections.length, equalTo(1));
|
|
|
assertThat(corrections[0].join(space).utf8ToString(), equalTo("american ame"));
|
|
@@ -131,8 +135,10 @@ public class NoisyChannelSpellCheckerTests extends ESTestCase {
|
|
|
assertThat(result.cutoffScore, equalTo(Double.MIN_VALUE));
|
|
|
|
|
|
suggester = new NoisyChannelSpellChecker(0.85);
|
|
|
- wordScorer = new LaplaceScorer(ir, MultiFields.getTerms(ir, "body_ngram"), "body_ngram", 0.85d, new BytesRef(" "), 0.5f);
|
|
|
- corrections = suggester.getCorrections(wrapper, new BytesRef("Xor the Got-Jewel"), generator, 0.5f, 4, ir, "body", wordScorer, 0, 2).corrections;
|
|
|
+ wordScorer = new LaplaceScorer(ir, MultiFields.getTerms(ir, "body_ngram"), "body_ngram", 0.85d,
|
|
|
+ new BytesRef(" "), 0.5f);
|
|
|
+ corrections = suggester.getCorrections(wrapper, new BytesRef("Xor the Got-Jewel"), generator, 0.5f, 4,
|
|
|
+ ir, "body", wordScorer, 0, 2).corrections;
|
|
|
assertThat(corrections.length, equalTo(4));
|
|
|
assertThat(corrections[0].join(space).utf8ToString(), equalTo("xorr the god jewel"));
|
|
|
assertThat(corrections[1].join(space).utf8ToString(), equalTo("xor the god jewel"));
|
|
@@ -143,7 +149,8 @@ public class NoisyChannelSpellCheckerTests extends ESTestCase {
|
|
|
assertThat(corrections[2].join(space, preTag, postTag).utf8ToString(), equalTo("<em>xorn</em> the <em>god</em> jewel"));
|
|
|
assertThat(corrections[3].join(space, preTag, postTag).utf8ToString(), equalTo("<em>xorr</em> the got jewel"));
|
|
|
|
|
|
- corrections = suggester.getCorrections(wrapper, new BytesRef("Xor the Got-Jewel"), generator, 0.5f, 4, ir, "body", wordScorer, 1, 2).corrections;
|
|
|
+ corrections = suggester.getCorrections(wrapper, new BytesRef("Xor the Got-Jewel"), generator, 0.5f,
|
|
|
+ 4, ir, "body", wordScorer, 1, 2).corrections;
|
|
|
assertThat(corrections.length, equalTo(4));
|
|
|
assertThat(corrections[0].join(space).utf8ToString(), equalTo("xorr the god jewel"));
|
|
|
assertThat(corrections[1].join(space).utf8ToString(), equalTo("xor the god jewel"));
|
|
@@ -152,8 +159,10 @@ public class NoisyChannelSpellCheckerTests extends ESTestCase {
|
|
|
|
|
|
// Test some of the highlighting corner cases
|
|
|
suggester = new NoisyChannelSpellChecker(0.85);
|
|
|
- wordScorer = new LaplaceScorer(ir, MultiFields.getTerms(ir, "body_ngram"), "body_ngram", 0.85d, new BytesRef(" "), 0.5f);
|
|
|
- corrections = suggester.getCorrections(wrapper, new BytesRef("Xor teh Got-Jewel"), generator, 4f, 4, ir, "body", wordScorer, 1, 2).corrections;
|
|
|
+ wordScorer = new LaplaceScorer(ir, MultiFields.getTerms(ir, "body_ngram"), "body_ngram", 0.85d,
|
|
|
+ new BytesRef(" "), 0.5f);
|
|
|
+ corrections = suggester.getCorrections(wrapper, new BytesRef("Xor teh Got-Jewel"), generator, 4f, 4,
|
|
|
+ ir, "body", wordScorer, 1, 2).corrections;
|
|
|
assertThat(corrections.length, equalTo(4));
|
|
|
assertThat(corrections[0].join(space).utf8ToString(), equalTo("xorr the god jewel"));
|
|
|
assertThat(corrections[1].join(space).utf8ToString(), equalTo("xor the god jewel"));
|
|
@@ -187,19 +196,25 @@ public class NoisyChannelSpellCheckerTests extends ESTestCase {
|
|
|
spellchecker.setMinPrefix(1);
|
|
|
spellchecker.setMinQueryLength(1);
|
|
|
suggester = new NoisyChannelSpellChecker(0.85);
|
|
|
- wordScorer = new LaplaceScorer(ir, MultiFields.getTerms(ir, "body_ngram"), "body_ngram", 0.85d, new BytesRef(" "), 0.5f);
|
|
|
- corrections = suggester.getCorrections(analyzer, new BytesRef("captian usa"), generator, 2, 4, ir, "body", wordScorer, 1, 2).corrections;
|
|
|
+ wordScorer = new LaplaceScorer(ir, MultiFields.getTerms(ir, "body_ngram"), "body_ngram", 0.85d,
|
|
|
+ new BytesRef(" "), 0.5f);
|
|
|
+ corrections = suggester.getCorrections(analyzer, new BytesRef("captian usa"), generator, 2, 4,
|
|
|
+ ir, "body", wordScorer, 1, 2).corrections;
|
|
|
assertThat(corrections[0].join(space).utf8ToString(), equalTo("captain america"));
|
|
|
assertThat(corrections[0].join(space, preTag, postTag).utf8ToString(), equalTo("<em>captain america</em>"));
|
|
|
|
|
|
- generator = new DirectCandidateGenerator(spellchecker, "body", SuggestMode.SUGGEST_MORE_POPULAR, ir, 0.85, 10, null, analyzer, MultiFields.getTerms(ir, "body"));
|
|
|
- corrections = suggester.getCorrections(analyzer, new BytesRef("captian usw"), generator, 2, 4, ir, "body", wordScorer, 1, 2).corrections;
|
|
|
+ generator = new DirectCandidateGenerator(spellchecker, "body", SuggestMode.SUGGEST_MORE_POPULAR, ir, 0.85,
|
|
|
+ 10, null, analyzer, MultiFields.getTerms(ir, "body"));
|
|
|
+ corrections = suggester.getCorrections(analyzer, new BytesRef("captian usw"), generator, 2, 4,
|
|
|
+ ir, "body", wordScorer, 1, 2).corrections;
|
|
|
assertThat(corrections[0].join(new BytesRef(" ")).utf8ToString(), equalTo("captain america"));
|
|
|
assertThat(corrections[0].join(space, preTag, postTag).utf8ToString(), equalTo("<em>captain america</em>"));
|
|
|
|
|
|
// Make sure that user supplied text is not marked as highlighted in the presence of a synonym filter
|
|
|
- generator = new DirectCandidateGenerator(spellchecker, "body", SuggestMode.SUGGEST_MORE_POPULAR, ir, 0.85, 10, null, analyzer, MultiFields.getTerms(ir, "body"));
|
|
|
- corrections = suggester.getCorrections(analyzer, new BytesRef("captain usw"), generator, 2, 4, ir, "body", wordScorer, 1, 2).corrections;
|
|
|
+ generator = new DirectCandidateGenerator(spellchecker, "body", SuggestMode.SUGGEST_MORE_POPULAR, ir, 0.85,
|
|
|
+ 10, null, analyzer, MultiFields.getTerms(ir, "body"));
|
|
|
+ corrections = suggester.getCorrections(analyzer, new BytesRef("captain usw"), generator, 2, 4, ir,
|
|
|
+ "body", wordScorer, 1, 2).corrections;
|
|
|
assertThat(corrections[0].join(new BytesRef(" ")).utf8ToString(), equalTo("captain america"));
|
|
|
assertThat(corrections[0].join(space, preTag, postTag).utf8ToString(), equalTo("captain <em>america</em>"));
|
|
|
}
|
|
@@ -265,47 +280,58 @@ public class NoisyChannelSpellCheckerTests extends ESTestCase {
|
|
|
}
|
|
|
|
|
|
DirectoryReader ir = DirectoryReader.open(writer);
|
|
|
- LaplaceScorer wordScorer = new LaplaceScorer(ir, MultiFields.getTerms(ir, "body_ngram"), "body_ngram", 0.95d, new BytesRef(" "), 0.5f);
|
|
|
+ LaplaceScorer wordScorer = new LaplaceScorer(ir, MultiFields.getTerms(ir, "body_ngram"), "body_ngram", 0.95d,
|
|
|
+ new BytesRef(" "), 0.5f);
|
|
|
NoisyChannelSpellChecker suggester = new NoisyChannelSpellChecker();
|
|
|
DirectSpellChecker spellchecker = new DirectSpellChecker();
|
|
|
spellchecker.setMinQueryLength(1);
|
|
|
- DirectCandidateGenerator forward = new DirectCandidateGenerator(spellchecker, "body", SuggestMode.SUGGEST_ALWAYS, ir, 0.95, 10);
|
|
|
- DirectCandidateGenerator reverse = new DirectCandidateGenerator(spellchecker, "body_reverse", SuggestMode.SUGGEST_ALWAYS, ir, 0.95, 10, wrapper, wrapper, MultiFields.getTerms(ir, "body_reverse"));
|
|
|
+ DirectCandidateGenerator forward = new DirectCandidateGenerator(spellchecker, "body", SuggestMode.SUGGEST_ALWAYS, ir,
|
|
|
+ 0.95, 10);
|
|
|
+ DirectCandidateGenerator reverse = new DirectCandidateGenerator(spellchecker, "body_reverse", SuggestMode.SUGGEST_ALWAYS, ir,
|
|
|
+ 0.95, 10, wrapper, wrapper, MultiFields.getTerms(ir, "body_reverse"));
|
|
|
CandidateGenerator generator = new MultiCandidateGeneratorWrapper(10, forward, reverse);
|
|
|
|
|
|
- Correction[] corrections = suggester.getCorrections(wrapper, new BytesRef("american cae"), generator, 1, 1, ir, "body", wordScorer, 1, 2).corrections;
|
|
|
+ Correction[] corrections = suggester.getCorrections(wrapper, new BytesRef("american cae"), generator, 1, 1,
|
|
|
+ ir, "body", wordScorer, 1, 2).corrections;
|
|
|
assertThat(corrections.length, equalTo(1));
|
|
|
assertThat(corrections[0].join(new BytesRef(" ")).utf8ToString(), equalTo("american ace"));
|
|
|
|
|
|
generator = new MultiCandidateGeneratorWrapper(5, forward, reverse);
|
|
|
- corrections = suggester.getCorrections(wrapper, new BytesRef("american ame"), generator, 1, 1, ir, "body", wordScorer, 1, 2).corrections;
|
|
|
+ corrections = suggester.getCorrections(wrapper, new BytesRef("american ame"), generator, 1, 1, ir,
|
|
|
+ "body", wordScorer, 1, 2).corrections;
|
|
|
assertThat(corrections.length, equalTo(1));
|
|
|
assertThat(corrections[0].join(new BytesRef(" ")).utf8ToString(), equalTo("american ace"));
|
|
|
|
|
|
- corrections = suggester.getCorrections(wrapper, new BytesRef("american cae"), forward, 1, 1, ir, "body", wordScorer, 1, 2).corrections;
|
|
|
+ corrections = suggester.getCorrections(wrapper, new BytesRef("american cae"), forward, 1, 1, ir,
|
|
|
+ "body", wordScorer, 1, 2).corrections;
|
|
|
assertThat(corrections.length, equalTo(0)); // only use forward with constant prefix
|
|
|
|
|
|
- corrections = suggester.getCorrections(wrapper, new BytesRef("america cae"), generator, 2, 1, ir, "body", wordScorer, 1, 2).corrections;
|
|
|
+ corrections = suggester.getCorrections(wrapper, new BytesRef("america cae"), generator, 2, 1, ir,
|
|
|
+ "body", wordScorer, 1, 2).corrections;
|
|
|
assertThat(corrections.length, equalTo(1));
|
|
|
assertThat(corrections[0].join(new BytesRef(" ")).utf8ToString(), equalTo("american ace"));
|
|
|
|
|
|
- corrections = suggester.getCorrections(wrapper, new BytesRef("Zorr the Got-Jewel"), generator, 0.5f, 4, ir, "body", wordScorer, 0, 2).corrections;
|
|
|
+ corrections = suggester.getCorrections(wrapper, new BytesRef("Zorr the Got-Jewel"), generator, 0.5f, 4, ir,
|
|
|
+ "body", wordScorer, 0, 2).corrections;
|
|
|
assertThat(corrections.length, equalTo(4));
|
|
|
assertThat(corrections[0].join(new BytesRef(" ")).utf8ToString(), equalTo("xorr the god jewel"));
|
|
|
assertThat(corrections[1].join(new BytesRef(" ")).utf8ToString(), equalTo("zorr the god jewel"));
|
|
|
assertThat(corrections[2].join(new BytesRef(" ")).utf8ToString(), equalTo("four the god jewel"));
|
|
|
|
|
|
|
|
|
- corrections = suggester.getCorrections(wrapper, new BytesRef("Zorr the Got-Jewel"), generator, 0.5f, 1, ir, "body", wordScorer, 1.5f, 2).corrections;
|
|
|
+ corrections = suggester.getCorrections(wrapper, new BytesRef("Zorr the Got-Jewel"), generator, 0.5f, 1, ir,
|
|
|
+ "body", wordScorer, 1.5f, 2).corrections;
|
|
|
assertThat(corrections.length, equalTo(1));
|
|
|
assertThat(corrections[0].join(new BytesRef(" ")).utf8ToString(), equalTo("xorr the god jewel"));
|
|
|
|
|
|
- corrections = suggester.getCorrections(wrapper, new BytesRef("Xor the Got-Jewel"), generator, 0.5f, 1, ir, "body", wordScorer, 1.5f, 2).corrections;
|
|
|
+ corrections = suggester.getCorrections(wrapper, new BytesRef("Xor the Got-Jewel"), generator, 0.5f, 1, ir,
|
|
|
+ "body", wordScorer, 1.5f, 2).corrections;
|
|
|
assertThat(corrections.length, equalTo(1));
|
|
|
assertThat(corrections[0].join(new BytesRef(" ")).utf8ToString(), equalTo("xorr the god jewel"));
|
|
|
|
|
|
// Test a special case where one of the suggest term is unchanged by the postFilter, 'II' here is unchanged by the reverse analyzer.
|
|
|
- corrections = suggester.getCorrections(wrapper, new BytesRef("Quazar II"), generator, 1, 1, ir, "body", wordScorer, 1, 2).corrections;
|
|
|
+ corrections = suggester.getCorrections(wrapper, new BytesRef("Quazar II"), generator, 1, 1, ir,
|
|
|
+ "body", wordScorer, 1, 2).corrections;
|
|
|
assertThat(corrections.length, equalTo(1));
|
|
|
assertThat(corrections[0].join(new BytesRef(" ")).utf8ToString(), equalTo("quasar ii"));
|
|
|
}
|
|
@@ -362,22 +388,28 @@ public class NoisyChannelSpellCheckerTests extends ESTestCase {
|
|
|
}
|
|
|
|
|
|
DirectoryReader ir = DirectoryReader.open(writer);
|
|
|
- WordScorer wordScorer = new LinearInterpolatingScorer(ir, MultiFields.getTerms(ir, "body_ngram"), "body_ngram", 0.85d, new BytesRef(" "), 0.5, 0.4, 0.1);
|
|
|
+ WordScorer wordScorer = new LinearInterpolatingScorer(ir, MultiFields.getTerms(ir, "body_ngram"), "body_ngram", 0.85d,
|
|
|
+ new BytesRef(" "), 0.5, 0.4, 0.1);
|
|
|
|
|
|
NoisyChannelSpellChecker suggester = new NoisyChannelSpellChecker();
|
|
|
DirectSpellChecker spellchecker = new DirectSpellChecker();
|
|
|
spellchecker.setMinQueryLength(1);
|
|
|
- DirectCandidateGenerator generator = new DirectCandidateGenerator(spellchecker, "body", SuggestMode.SUGGEST_MORE_POPULAR, ir, 0.95, 5);
|
|
|
- Correction[] corrections = suggester.getCorrections(wrapper, new BytesRef("american ame"), generator, 1, 1, ir, "body", wordScorer, 1, 3).corrections;
|
|
|
+ DirectCandidateGenerator generator = new DirectCandidateGenerator(spellchecker, "body", SuggestMode.SUGGEST_MORE_POPULAR, ir,
|
|
|
+ 0.95, 5);
|
|
|
+ Correction[] corrections = suggester.getCorrections(wrapper, new BytesRef("american ame"), generator, 1, 1,
|
|
|
+ ir, "body", wordScorer, 1, 3).corrections;
|
|
|
assertThat(corrections.length, equalTo(1));
|
|
|
assertThat(corrections[0].join(new BytesRef(" ")).utf8ToString(), equalTo("american ace"));
|
|
|
|
|
|
- corrections = suggester.getCorrections(wrapper, new BytesRef("american ame"), generator, 1, 1, ir, "body", wordScorer, 1, 1).corrections;
|
|
|
+ corrections = suggester.getCorrections(wrapper, new BytesRef("american ame"), generator, 1, 1,
|
|
|
+ ir, "body", wordScorer, 1, 1).corrections;
|
|
|
assertThat(corrections.length, equalTo(0));
|
|
|
// assertThat(corrections[0].join(new BytesRef(" ")).utf8ToString(), equalTo("american ape"));
|
|
|
|
|
|
- wordScorer = new LinearInterpolatingScorer(ir, MultiFields.getTerms(ir, "body_ngram"), "body_ngram", 0.85d, new BytesRef(" "), 0.5, 0.4, 0.1);
|
|
|
- corrections = suggester.getCorrections(wrapper, new BytesRef("Xor the Got-Jewel"), generator, 0.5f, 4, ir, "body", wordScorer, 0, 3).corrections;
|
|
|
+ wordScorer = new LinearInterpolatingScorer(ir, MultiFields.getTerms(ir, "body_ngram"), "body_ngram", 0.85d,
|
|
|
+ new BytesRef(" "), 0.5, 0.4, 0.1);
|
|
|
+ corrections = suggester.getCorrections(wrapper, new BytesRef("Xor the Got-Jewel"), generator, 0.5f, 4,
|
|
|
+ ir, "body", wordScorer, 0, 3).corrections;
|
|
|
assertThat(corrections.length, equalTo(4));
|
|
|
assertThat(corrections[0].join(new BytesRef(" ")).utf8ToString(), equalTo("xorr the god jewel"));
|
|
|
assertThat(corrections[1].join(new BytesRef(" ")).utf8ToString(), equalTo("xor the god jewel"));
|
|
@@ -387,7 +419,8 @@ public class NoisyChannelSpellCheckerTests extends ESTestCase {
|
|
|
|
|
|
|
|
|
|
|
|
- corrections = suggester.getCorrections(wrapper, new BytesRef("Xor the Got-Jewel"), generator, 0.5f, 4, ir, "body", wordScorer, 1, 3).corrections;
|
|
|
+ corrections = suggester.getCorrections(wrapper, new BytesRef("Xor the Got-Jewel"), generator, 0.5f, 4,
|
|
|
+ ir, "body", wordScorer, 1, 3).corrections;
|
|
|
assertThat(corrections.length, equalTo(4));
|
|
|
assertThat(corrections[0].join(new BytesRef(" ")).utf8ToString(), equalTo("xorr the god jewel"));
|
|
|
assertThat(corrections[1].join(new BytesRef(" ")).utf8ToString(), equalTo("xor the god jewel"));
|
|
@@ -395,7 +428,8 @@ public class NoisyChannelSpellCheckerTests extends ESTestCase {
|
|
|
assertThat(corrections[3].join(new BytesRef(" ")).utf8ToString(), equalTo("xorr the got jewel"));
|
|
|
|
|
|
|
|
|
- corrections = suggester.getCorrections(wrapper, new BytesRef("Xor the Got-Jewel"), generator, 0.5f, 1, ir, "body", wordScorer, 100, 3).corrections;
|
|
|
+ corrections = suggester.getCorrections(wrapper, new BytesRef("Xor the Got-Jewel"), generator, 0.5f, 1,
|
|
|
+ ir, "body", wordScorer, 100, 3).corrections;
|
|
|
assertThat(corrections.length, equalTo(1));
|
|
|
assertThat(corrections[0].join(new BytesRef(" ")).utf8ToString(), equalTo("xorr the god jewel"));
|
|
|
|
|
@@ -423,17 +457,23 @@ public class NoisyChannelSpellCheckerTests extends ESTestCase {
|
|
|
spellchecker.setMinPrefix(1);
|
|
|
spellchecker.setMinQueryLength(1);
|
|
|
suggester = new NoisyChannelSpellChecker(0.95);
|
|
|
- wordScorer = new LinearInterpolatingScorer(ir, MultiFields.getTerms(ir, "body_ngram"), "body_ngram", 0.95d, new BytesRef(" "), 0.5, 0.4, 0.1);
|
|
|
- corrections = suggester.getCorrections(analyzer, new BytesRef("captian usa"), generator, 2, 4, ir, "body", wordScorer, 1, 3).corrections;
|
|
|
+ wordScorer = new LinearInterpolatingScorer(ir, MultiFields.getTerms(ir, "body_ngram"), "body_ngram", 0.95d,
|
|
|
+ new BytesRef(" "), 0.5, 0.4, 0.1);
|
|
|
+ corrections = suggester.getCorrections(analyzer, new BytesRef("captian usa"), generator, 2, 4,
|
|
|
+ ir, "body", wordScorer, 1, 3).corrections;
|
|
|
assertThat(corrections[0].join(new BytesRef(" ")).utf8ToString(), equalTo("captain america"));
|
|
|
|
|
|
- generator = new DirectCandidateGenerator(spellchecker, "body", SuggestMode.SUGGEST_MORE_POPULAR, ir, 0.95, 10, null, analyzer, MultiFields.getTerms(ir, "body"));
|
|
|
- corrections = suggester.getCorrections(analyzer, new BytesRef("captian usw"), generator, 2, 4, ir, "body", wordScorer, 1, 3).corrections;
|
|
|
+ generator = new DirectCandidateGenerator(spellchecker, "body", SuggestMode.SUGGEST_MORE_POPULAR, ir, 0.95,
|
|
|
+ 10, null, analyzer, MultiFields.getTerms(ir, "body"));
|
|
|
+ corrections = suggester.getCorrections(analyzer, new BytesRef("captian usw"), generator, 2, 4,
|
|
|
+ ir, "body", wordScorer, 1, 3).corrections;
|
|
|
assertThat(corrections[0].join(new BytesRef(" ")).utf8ToString(), equalTo("captain america"));
|
|
|
|
|
|
|
|
|
- wordScorer = new StupidBackoffScorer(ir, MultiFields.getTerms(ir, "body_ngram"), "body_ngram", 0.85d, new BytesRef(" "), 0.4);
|
|
|
- corrections = suggester.getCorrections(wrapper, new BytesRef("Xor the Got-Jewel"), generator, 0.5f, 2, ir, "body", wordScorer, 0, 3).corrections;
|
|
|
+ wordScorer = new StupidBackoffScorer(ir, MultiFields.getTerms(ir, "body_ngram"), "body_ngram", 0.85d,
|
|
|
+ new BytesRef(" "), 0.4);
|
|
|
+ corrections = suggester.getCorrections(wrapper, new BytesRef("Xor the Got-Jewel"), generator, 0.5f, 2,
|
|
|
+ ir, "body", wordScorer, 0, 3).corrections;
|
|
|
assertThat(corrections.length, equalTo(2));
|
|
|
assertThat(corrections[0].join(new BytesRef(" ")).utf8ToString(), equalTo("xorr the god jewel"));
|
|
|
assertThat(corrections[1].join(new BytesRef(" ")).utf8ToString(), equalTo("xor the god jewel"));
|
|
@@ -452,11 +492,14 @@ public class NoisyChannelSpellCheckerTests extends ESTestCase {
|
|
|
}
|
|
|
|
|
|
try (DirectoryReader ir = DirectoryReader.open(dir)) {
|
|
|
- WordScorer wordScorer = new StupidBackoffScorer(ir, MultiFields.getTerms(ir, "field"), "field", 0.95d, new BytesRef(" "), 0.4f);
|
|
|
+ WordScorer wordScorer = new StupidBackoffScorer(ir, MultiFields.getTerms(ir, "field"), "field", 0.95d,
|
|
|
+ new BytesRef(" "), 0.4f);
|
|
|
NoisyChannelSpellChecker suggester = new NoisyChannelSpellChecker();
|
|
|
DirectSpellChecker spellchecker = new DirectSpellChecker();
|
|
|
- DirectCandidateGenerator generator = new DirectCandidateGenerator(spellchecker, "field", SuggestMode.SUGGEST_MORE_POPULAR, ir, 0.95, 5);
|
|
|
- Result result = suggester.getCorrections(new StandardAnalyzer(), new BytesRef("valeu"), generator, 1, 1, ir, "field", wordScorer, 1, 2);
|
|
|
+ DirectCandidateGenerator generator = new DirectCandidateGenerator(spellchecker, "field",
|
|
|
+ SuggestMode.SUGGEST_MORE_POPULAR, ir, 0.95, 5);
|
|
|
+ Result result = suggester.getCorrections(new StandardAnalyzer(), new BytesRef("valeu"), generator, 1, 1,
|
|
|
+ ir, "field", wordScorer, 1, 2);
|
|
|
assertThat(result.corrections.length, equalTo(1));
|
|
|
assertThat(result.corrections[0].join(space).utf8ToString(), equalTo("value"));
|
|
|
}
|