lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Паша Минченков <char...@gmail.com>
Subject DuplicateFilter question
Date Mon, 31 May 2010 06:27:04 GMT
Hi,

Why DuplicateFilter doesn't work together with other filters? For
example, if a little remake of the test DuplicateFilterTest, then the
impression that the filter is not applied to other filters and first
trims results:

public void testKeepsLastFilter()
	throws Throwable {
	DuplicateFilter df = new DuplicateFilter(KEY_FIELD);
	df.setKeepMode(DuplicateFilter.KM_USE_LAST_OCCURRENCE);

	Query q = new ConstantScoreQuery(new ChainedFilter(new Filter[]{
	new QueryWrapperFilter(tq),
	// new QueryWrapperFilter(new TermQuery(new Term("text", "out"))), //
works right, it is the last document.
	new QueryWrapperFilter(new TermQuery(new Term("text", "now"))) // why
it doesn't work? It is the third document.

	}, ChainedFilter.AND));

	ScoreDoc[] hits = searcher.search(q, df, 1000).scoreDocs;
	
	assertTrue("Filtered searching should have found some matches",
hits.length > 0);
	for (int i = 0; i < hits.length; i++) {
	Document d = searcher.doc(hits[i].doc);
	String url = d.get(KEY_FIELD);
	TermDocs td = reader.termDocs(new Term(KEY_FIELD, url));
	int lastDoc = 0;
	while (td.next()) {
	lastDoc = td.doc();
	}
	assertEquals("Duplicate urls should return last doc", lastDoc, hits[i].doc);
	}
}

-- 
С уважением,
Минченков Павел

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


Mime
View raw message