You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Mark Miller (JIRA)" <ji...@apache.org> on 2009/04/10 04:23:12 UTC
[jira] Resolved: (LUCENE-861) Contrib queries package Query
implementations do not override equals()
[ https://issues.apache.org/jira/browse/LUCENE-861?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mark Miller resolved LUCENE-861.
--------------------------------
Resolution: Fixed
Thanks Antony!
> Contrib queries package Query implementations do not override equals()
> ----------------------------------------------------------------------
>
> Key: LUCENE-861
> URL: https://issues.apache.org/jira/browse/LUCENE-861
> Project: Lucene - Java
> Issue Type: Bug
> Components: Search
> Affects Versions: 2.1
> Environment: All
> Reporter: Antony Bowesman
> Assignee: Mark Miller
> Priority: Minor
> Fix For: 2.9
>
> Attachments: LUCENE-861.patch
>
>
> Query implementations should override equals() so that Query instances can be cached and that Filters can know if a Query has been used before. See the discussion in this thread.
> http://www.mail-archive.com/java-user@lucene.apache.org/msg13061.html
> Following 3 contrib Query implementations do no override equals()
> org.apache.lucene.search.BoostingQuery;
> org.apache.lucene.search.FuzzyLikeThisQuery;
> org.apache.lucene.search.similar.MoreLikeThisQuery;
> Test cases below show the problem.
> package com.teamware.office.lucene.search;
> import static org.junit.Assert.*;
> import org.apache.lucene.analysis.standard.StandardAnalyzer;
> import org.apache.lucene.index.Term;
> import org.apache.lucene.search.BoostingQuery;
> import org.apache.lucene.search.FuzzyLikeThisQuery;
> import org.apache.lucene.search.TermQuery;
> import org.apache.lucene.search.similar.MoreLikeThisQuery;
> import org.junit.After;
> import org.junit.Before;
> import org.junit.Test;
> public class ContribQueriesEqualsTest
> {
> /**
> * @throws java.lang.Exception
> */
> @Before
> public void setUp() throws Exception
> {
> }
> /**
> * @throws java.lang.Exception
> */
> @After
> public void tearDown() throws Exception
> {
> }
>
> /**
> * Show that the BoostingQuery in the queries contrib package
> * does not implement equals() correctly.
> */
> @Test
> public void testBoostingQueryEquals()
> {
> TermQuery q1 = new TermQuery(new Term("subject:", "java"));
> TermQuery q2 = new TermQuery(new Term("subject:", "java"));
> assertEquals("Two TermQueries with same attributes should be equal", q1, q2);
> BoostingQuery bq1 = new BoostingQuery(q1, q2, 0.1f);
> BoostingQuery bq2 = new BoostingQuery(q1, q2, 0.1f);
> assertEquals("BoostingQuery with same attributes is not equal", bq1, bq2);
> }
> /**
> * Show that the MoreLikeThisQuery in the queries contrib package
> * does not implement equals() correctly.
> */
> @Test
> public void testMoreLikeThisQueryEquals()
> {
> String moreLikeFields[] = new String[] {"subject", "body"};
>
> MoreLikeThisQuery mltq1 = new MoreLikeThisQuery("java", moreLikeFields, new StandardAnalyzer());
> MoreLikeThisQuery mltq2 = new MoreLikeThisQuery("java", moreLikeFields, new StandardAnalyzer());
> assertEquals("MoreLikeThisQuery with same attributes is not equal", mltq1, mltq2);
> }
> /**
> * Show that the FuzzyLikeThisQuery in the queries contrib package
> * does not implement equals() correctly.
> */
> @Test
> public void testFuzzyLikeThisQueryEquals()
> {
> FuzzyLikeThisQuery fltq1 = new FuzzyLikeThisQuery(10, new StandardAnalyzer());
> fltq1.addTerms("javi", "subject", 0.5f, 2);
> FuzzyLikeThisQuery fltq2 = new FuzzyLikeThisQuery(10, new StandardAnalyzer());
> fltq2.addTerms("javi", "subject", 0.5f, 2);
> assertEquals("FuzzyLikeThisQuery with same attributes is not equal", fltq1, fltq2);
> }
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-dev-help@lucene.apache.org