You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Michael McCandless (JIRA)" <ji...@apache.org> on 2015/07/15 23:46:04 UTC
[jira] [Resolved] (LUCENE-6680) BlendedInfixSuggester dedup bug
[ https://issues.apache.org/jira/browse/LUCENE-6680?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Michael McCandless resolved LUCENE-6680.
----------------------------------------
Resolution: Fixed
Fix Version/s: Trunk
5.3
Thanks [~arcadius], I just committed your patch with a small tweak to the if statement logic in the comparator...
> BlendedInfixSuggester dedup bug
> -------------------------------
>
> Key: LUCENE-6680
> URL: https://issues.apache.org/jira/browse/LUCENE-6680
> Project: Lucene - Core
> Issue Type: Bug
> Affects Versions: 5.2.1
> Reporter: Arcadius Ahouansou
> Fix For: 5.3, Trunk
>
> Attachments: LUCENE-6680.patch
>
>
> I expect the following test to pass, but it's failing in the latest Lucene 5.2.1:
> {code:title=FailingTest.java|borderStyle=solid}
> public void testBlendedInfixSuggesterDedupsOnWeightTitleAndPayload() throws Exception {
> //Only the payload is different
> Input[] inputDocuments = new Input[]{
> new Input("lend me your ear", 7, new BytesRef("uid1")),
> new Input("lend me your ear", 7, new BytesRef("uid2")),
> };
> Analyzer a = new MockAnalyzer(random(), MockTokenizer.WHITESPACE, false);
> BlendedInfixSuggester suggester = new BlendedInfixSuggester(newDirectory(), a, a, AnalyzingInfixSuggester.DEFAULT_MIN_PREFIX_CHARS,
> BlendedInfixSuggester.BlenderType.POSITION_RECIPROCAL, 10, false);
> InputArrayIterator inputArrayIterator = new InputArrayIterator(inputDocuments);
> suggester.build(inputArrayIterator);
> List<Lookup.LookupResult> results = suggester.lookup(TestUtil.stringToCharSequence("ear", random()), 10, true, true);
> suggester.close();
> a.close();
> assertEquals(2, results.size());
> }
> {code}
> This test is failing because the BlendedInfixSuggester internally uses a TreeSet for storing the results and the corresponding Comparator only uses text+weight meaning that results with different payloads are collapsed into one.
> [~mikemccand], The idea here is that if two ingested documents have the same title and weight, but different payloads, then they are two different things and folding them into a single document would mean loosing the payload information.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org