lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rodrigo Vega (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (LUCENE-4461) Multiple FacetRequest with the same path creates inconsistent results
Date Fri, 05 Oct 2012 15:24:02 GMT

     [ https://issues.apache.org/jira/browse/LUCENE-4461?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Rodrigo Vega updated LUCENE-4461:
---------------------------------

    Description: 
Multiple FacetRequest are getting merged into one creating wrong results in this case:

FacetSearchParams facetSearchParams = new FacetSearchParams();
		facetSearchParams.addFacetRequest(new CountFacetRequest(new CategoryPath("author"), 10));
		facetSearchParams.addFacetRequest(new CountFacetRequest(new CategoryPath("author"), 10));

Problem can be fixed by defining hashcode and equals in certain way that Lucene recognize
we are talking about different requests.


Attached test case.

  was:
Multiple FacetRequest are getting merged into one creating wrong results in this case:

FacetSearchParams facetSearchParams = new FacetSearchParams();
		facetSearchParams.addFacetRequest(new CountFacetRequest(new CategoryPath("author"), 10));
		facetSearchParams.addFacetRequest(new CountFacetRequest(new CategoryPath("author"), 10));

Problem can be fixed by defining hashcode and equals in certain way that Lucene recognize
we are talking about different requests.


A Very simple test case:
========================

public class LuceneFacetTest {

	@Test
	public void testDuplicateFacetRequest() throws Exception {
		IndexWriter writer = new IndexWriter(new RAMDirectory(), new IndexWriterConfig(Version.LUCENE_36,
new StandardAnalyzer(Version.LUCENE_36)));
		Directory taxoDir = new RAMDirectory();
		TaxonomyWriter taxoWriter = new DirectoryTaxonomyWriter(taxoDir, OpenMode.CREATE);

		Document doc = new Document();
		doc.add(new Field("title", "simple text title", Store.YES, org.apache.lucene.document.Field.Index.ANALYZED));
		List<CategoryPath> categories = new ArrayList<CategoryPath>();
		categories.add(new CategoryPath("author", "Mark Twain"));
		categories.add(new CategoryPath("year", "2010"));
		CategoryDocumentBuilder categoryDocBuilder = new CategoryDocumentBuilder(taxoWriter);
		categoryDocBuilder.setCategoryPaths(categories);
		categoryDocBuilder.build(doc);
		writer.addDocument(doc);
		writer.commit();
		taxoWriter.commit();

		IndexReader indexReader = IndexReader.open(writer, true);
		IndexSearcher searcher = new IndexSearcher(indexReader);
		TaxonomyReader taxoReader = new DirectoryTaxonomyReader(taxoDir);
		Query q = new TermQuery(new Term("title", "text"));

		TopScoreDocCollector tdc = TopScoreDocCollector.create(10, true);

		FacetSearchParams facetSearchParams = new FacetSearchParams();
		facetSearchParams.addFacetRequest(new CountFacetRequest(new CategoryPath("author"), 10));
		facetSearchParams.addFacetRequest(new CountFacetRequest(new CategoryPath("author"), 10));

		FacetsCollector facetsCollector = new FacetsCollector(facetSearchParams, indexReader, taxoReader);
		searcher.search(q, MultiCollector.wrap(tdc, facetsCollector));
		List<FacetResult> res = facetsCollector.getFacetResults();

		Assert.assertEquals("Only Mark Twain should be returned as result", 1, res.get(0).getNumValidDescendants());
		Assert.assertEquals("Only Mark Twain should be returned as result", 1, res.get(1).getNumValidDescendants());
	}
}

    
> Multiple FacetRequest with the same path creates inconsistent results
> ---------------------------------------------------------------------
>
>                 Key: LUCENE-4461
>                 URL: https://issues.apache.org/jira/browse/LUCENE-4461
>             Project: Lucene - Core
>          Issue Type: Bug
>          Components: modules/facet
>    Affects Versions: 3.6
>            Reporter: Rodrigo Vega
>              Labels: facet, faceted-search
>         Attachments: LuceneFacetTest.java
>
>
> Multiple FacetRequest are getting merged into one creating wrong results in this case:
> FacetSearchParams facetSearchParams = new FacetSearchParams();
> 		facetSearchParams.addFacetRequest(new CountFacetRequest(new CategoryPath("author"),
10));
> 		facetSearchParams.addFacetRequest(new CountFacetRequest(new CategoryPath("author"),
10));
> Problem can be fixed by defining hashcode and equals in certain way that Lucene recognize
we are talking about different requests.
> Attached test case.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org


Mime
View raw message