Author: brett
Date: Sat Aug 26 10:49:46 2006
New Revision: 437192
URL: http://svn.apache.org/viewvc?rev=437192&view=rev
Log:
[MRM-151] test dependency index, fix tokenization
Modified:
maven/archiva/trunk/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneRepositoryArtifactIndex.java
maven/archiva/trunk/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/lucene/LuceneStandardArtifactIndexSearchTest.java
Modified:
maven/archiva/trunk/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneRepositoryArtifactIndex.java
URL:
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneRepositoryArtifactIndex.java?rev=437192&r1=437191&r2=437192&view=diff
==============================================================================
---
maven/archiva/trunk/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneRepositoryArtifactIndex.java
(original)
+++
maven/archiva/trunk/archiva-indexer/src/main/java/org/apache/maven/archiva/indexer/lucene/LuceneRepositoryArtifactIndex.java
Sat Aug 26 10:49:46 2006
@@ -17,6 +17,8 @@
*/
import org.apache.lucene.analysis.Analyzer;
+import org.apache.lucene.analysis.CharTokenizer;
+import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
@@ -30,9 +32,11 @@
import org.apache.maven.archiva.indexer.RepositoryIndexSearchException;
import org.apache.maven.archiva.indexer.query.Query;
import org.apache.maven.archiva.indexer.record.RepositoryIndexRecord;
+import org.apache.maven.archiva.indexer.record.StandardIndexRecordFields;
import java.io.File;
import java.io.IOException;
+import java.io.Reader;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Collection;
@@ -130,10 +134,35 @@
}
}
- private Analyzer getAnalyzer()
+ public Analyzer getAnalyzer()
{
- // TODO: investigate why changed in original! Probably for MD5 and
number querying.
- return new StandardAnalyzer();
+ return new MyAnalyzer();
+ }
+
+ private static class MyAnalyzer
+ extends Analyzer
+ {
+ private static final Analyzer STANDARD = new StandardAnalyzer();
+
+ public TokenStream tokenStream( String field, final Reader reader )
+ {
+ // do not tokenize field called 'element'
+ if ( StandardIndexRecordFields.DEPENDENCIES.equals( field ) )
+ {
+ return new CharTokenizer( reader )
+ {
+ protected boolean isTokenChar( char c )
+ {
+ return c != '\n';
+ }
+ };
+ }
+ else
+ {
+ // use standard analyzer
+ return STANDARD.tokenStream( field, reader );
+ }
+ }
}
public void deleteRecords( Collection records )
Modified:
maven/archiva/trunk/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/lucene/LuceneStandardArtifactIndexSearchTest.java
URL:
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/lucene/LuceneStandardArtifactIndexSearchTest.java?rev=437192&r1=437191&r2=437192&view=diff
==============================================================================
---
maven/archiva/trunk/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/lucene/LuceneStandardArtifactIndexSearchTest.java
(original)
+++
maven/archiva/trunk/archiva-indexer/src/test/java/org/apache/maven/archiva/indexer/lucene/LuceneStandardArtifactIndexSearchTest.java
Sat Aug 26 10:49:46 2006
@@ -635,6 +635,23 @@
assertTrue( "Check results size", results.isEmpty() );
}
+ public void testExactMatchDependency()
+ throws RepositoryIndexSearchException
+ {
+ Query query = new TermQuery(
+ new Term( StandardIndexRecordFields.DEPENDENCIES,
"org.apache.maven:maven-plugin-api:2.0" ) );
+ List results = index.search( new LuceneQuery( query ) );
+
+ assertTrue( "Check result", results.contains( records.get(
"test-plugin" ) ) );
+ assertEquals( "Check results size", 1, results.size() );
+
+ // test non-match fails
+ query = new TermQuery( new Term(
StandardIndexRecordFields.DEPENDENCIES, "foo" ) );
+ results = index.search( new LuceneQuery( query ) );
+
+ assertTrue( "Check results size", results.isEmpty() );
+ }
+
public void testMatchProjectName()
throws RepositoryIndexSearchException
{