[mb-commits] r13633 - in search_server/trunk: index/src/main/java/org/musicbrainz/search/analysis index/src/main/java/org/musicbrainz/search/index index/src/test/java/org/musicbrainz/search/index servlet/src/main/java/org/musicbrainz/search/servlet servlet/src/main/java/org/musicbrainz/search/servlet/mmd1 servlet/src/main/java/org/musicbrainz/search/servlet/mmd2 servlet/src/test/java/org/musicbrainz/search/servlet
[email protected] Wed, 27 Feb 2013 09:15:08 +0000
| Newsgroups | gmane.comp.audio.musicbrainz.cvs |
|---|---|
| Message-ID | <E1UAd6S-0007va-2i@wiley> |
Author: ijabz
Date: 2013-02-27 09:14:47 +0000 (Wed, 27 Feb 2013)
New Revision: 13633
Added:
search_server/trunk/index/src/main/java/org/musicbrainz/search/analysis/StripLeadingZeroesAnalyzer.java
search_server/trunk/index/src/main/java/org/musicbrainz/search/analysis/StripLeadingZeroesFilter.java
Removed:
search_server/trunk/index/src/main/java/org/musicbrainz/search/analysis/StripLeadingZeroAnalyzer.java
search_server/trunk/index/src/main/java/org/musicbrainz/search/analysis/StripLeadingZeroFilter.java
Modified:
search_server/trunk/index/src/main/java/org/musicbrainz/search/index/CDStubIndexField.java
search_server/trunk/index/src/main/java/org/musicbrainz/search/index/LabelIndex.java
search_server/trunk/index/src/main/java/org/musicbrainz/search/index/LabelIndexField.java
search_server/trunk/index/src/main/java/org/musicbrainz/search/index/ReleaseIndexField.java
search_server/trunk/index/src/test/java/org/musicbrainz/search/index/LabelIndexTest.java
search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/ArtistDismaxSearch.java
search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/LabelDismaxSearch.java
search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/LabelQueryParser.java
search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/ReleaseDismaxQueryParser.java
search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd1/LabelMmd1XmlWriter.java
search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/LabelWriter.java
search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindLabelTest.java
Log:
#SEARCH-228:Let Dismax Search for Labels search Label Code
Modified: search_server/trunk/index/src/main/java/org/musicbrainz/search/index/CDStubIndexField.java
===================================================================
--- search_server/trunk/index/src/main/java/org/musicbrainz/search/index/CDStubIndexField.java 2013-02-27 08:32:52 UTC (rev 13632)
+++ search_server/trunk/index/src/main/java/org/musicbrainz/search/index/CDStubIndexField.java 2013-02-27 09:14:47 UTC (rev 13633)
@@ -21,9 +21,8 @@
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.core.KeywordAnalyzer;
-import org.apache.lucene.document.Field;
import org.apache.lucene.document.FieldType;
-import org.musicbrainz.search.analysis.StripLeadingZeroAnalyzer;
+import org.musicbrainz.search.analysis.StripLeadingZeroesAnalyzer;
import org.musicbrainz.search.analysis.TitleAnalyzer;
/**
@@ -34,7 +33,7 @@
ID ("_id", MusicBrainzFieldTypes.TEXT_STORED_NOT_ANALYZED_NO_NORMS, new KeywordAnalyzer()),
ARTIST ("artist", MusicBrainzFieldTypes.TEXT_STORED_ANALYZED),
TITLE ("title", MusicBrainzFieldTypes.TEXT_STORED_ANALYZED, new TitleAnalyzer()),
- BARCODE ("barcode", MusicBrainzFieldTypes.TEXT_STORED_ANALYZED_NO_NORMS, new StripLeadingZeroAnalyzer()),
+ BARCODE ("barcode", MusicBrainzFieldTypes.TEXT_STORED_ANALYZED_NO_NORMS, new StripLeadingZeroesAnalyzer()),
COMMENT ("comment", MusicBrainzFieldTypes.TEXT_STORED_ANALYZED),
NUM_TRACKS ("tracks", MusicBrainzFieldTypes.TEXT_STORED_NOT_ANALYZED_NO_NORMS, new KeywordAnalyzer()),
DISCID ("discid", MusicBrainzFieldTypes.TEXT_STORED_NOT_ANALYZED_NO_NORMS, new KeywordAnalyzer()),
Modified: search_server/trunk/index/src/main/java/org/musicbrainz/search/index/LabelIndex.java
===================================================================
--- search_server/trunk/index/src/main/java/org/musicbrainz/search/index/LabelIndex.java 2013-02-27 08:32:52 UTC (rev 13632)
+++ search_server/trunk/index/src/main/java/org/musicbrainz/search/index/LabelIndex.java 2013-02-27 09:14:47 UTC (rev 13633)
@@ -230,7 +230,7 @@
int labelcode = rs.getInt("label_code");
if (labelcode > 0) {
- doc.addNumericField(LabelIndexField.CODE, labelcode);
+ doc.addField(LabelIndexField.CODE, labelcode);
}
else {
doc.addField(LabelIndexField.CODE,Index.NO_VALUE);
Modified: search_server/trunk/index/src/main/java/org/musicbrainz/search/index/LabelIndexField.java
===================================================================
--- search_server/trunk/index/src/main/java/org/musicbrainz/search/index/LabelIndexField.java 2013-02-27 08:32:52 UTC (rev 13632)
+++ search_server/trunk/index/src/main/java/org/musicbrainz/search/index/LabelIndexField.java 2013-02-27 09:14:47 UTC (rev 13633)
@@ -30,12 +30,8 @@
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.core.KeywordAnalyzer;
-import org.apache.lucene.document.Field;
import org.apache.lucene.document.FieldType;
-import org.musicbrainz.search.analysis.CaseInsensitiveKeywordAnalyzer;
-import org.musicbrainz.search.analysis.MusicbrainzAnalyzer;
-import org.musicbrainz.search.analysis.MusicbrainzKeepAccentsAnalyzer;
-import org.musicbrainz.search.analysis.MusicbrainzWithPosGapAnalyzer;
+import org.musicbrainz.search.analysis.*;
/**
* Fields created in Lucene Search Index
@@ -46,7 +42,7 @@
ALIAS ("alias", MusicBrainzFieldTypes.TEXT_STORED_ANALYZED, new MusicbrainzWithPosGapAnalyzer()),
BEGIN ("begin", MusicBrainzFieldTypes.TEXT_STORED_NOT_ANALYZED_NO_NORMS, new KeywordAnalyzer()),
COMMENT ("comment", MusicBrainzFieldTypes.TEXT_STORED_ANALYZED),
- CODE ("code", MusicBrainzFieldTypes.TEXT_STORED_ANALYZED, new KeywordAnalyzer()),
+ CODE ("code", MusicBrainzFieldTypes.TEXT_STORED_ANALYZED, new StripLeadingZeroesAnalyzer()),
COUNTRY ("country", MusicBrainzFieldTypes.TEXT_STORED_ANALYZED),
END ("end", MusicBrainzFieldTypes.TEXT_STORED_NOT_ANALYZED_NO_NORMS, new KeywordAnalyzer()),
ENDED ("ended", MusicBrainzFieldTypes.TEXT_STORED_ANALYZED_NO_NORMS, new CaseInsensitiveKeywordAnalyzer()),
Modified: search_server/trunk/index/src/main/java/org/musicbrainz/search/index/ReleaseIndexField.java
===================================================================
--- search_server/trunk/index/src/main/java/org/musicbrainz/search/index/ReleaseIndexField.java 2013-02-27 08:32:52 UTC (rev 13632)
+++ search_server/trunk/index/src/main/java/org/musicbrainz/search/index/ReleaseIndexField.java 2013-02-27 09:14:47 UTC (rev 13633)
@@ -2,7 +2,6 @@
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.core.KeywordAnalyzer;
-import org.apache.lucene.document.Field;
import org.apache.lucene.document.FieldType;
import org.musicbrainz.search.analysis.*;
@@ -18,7 +17,7 @@
ARTIST_CREDIT ("artistcredit", MusicBrainzFieldTypes.TEXT_STORED_NOT_INDEXED),
ARTIST_NAME ("artistname", MusicBrainzFieldTypes.TEXT_NOT_STORED_ANALYZED, new MusicbrainzWithPosGapAnalyzer()),
ARTIST_NAMECREDIT ("creditname", MusicBrainzFieldTypes.TEXT_NOT_STORED_ANALYZED, new MusicbrainzWithPosGapAnalyzer()),
- BARCODE ("barcode", MusicBrainzFieldTypes.TEXT_STORED_ANALYZED_NO_NORMS, new StripLeadingZeroAnalyzer()),
+ BARCODE ("barcode", MusicBrainzFieldTypes.TEXT_STORED_ANALYZED_NO_NORMS, new StripLeadingZeroesAnalyzer()),
CATALOG_NO ("catno", MusicBrainzFieldTypes.TEXT_STORED_ANALYZED_NO_NORMS, new StripSpacesAnalyzer()),
COMMENT ("comment", MusicBrainzFieldTypes.TEXT_STORED_ANALYZED),
COUNTRY ("country", MusicBrainzFieldTypes.TEXT_STORED_ANALYZED_NO_NORMS, new CaseInsensitiveKeywordAnalyzer()),
Modified: search_server/trunk/index/src/test/java/org/musicbrainz/search/index/LabelIndexTest.java
===================================================================
--- search_server/trunk/index/src/test/java/org/musicbrainz/search/index/LabelIndexTest.java 2013-02-27 08:32:52 UTC (rev 13632)
+++ search_server/trunk/index/src/test/java/org/musicbrainz/search/index/LabelIndexTest.java 2013-02-27 09:14:47 UTC (rev 13633)
@@ -237,7 +237,7 @@
{
Document doc = ir.document(1);
assertEquals(1, doc.getFields(LabelIndexField.CODE.getName()).length);
- assertEquals(5807, NumericUtils.prefixCodedToInt(new BytesRef(doc.get(LabelIndexField.CODE.getName()))));
+ assertEquals("5807", doc.get(LabelIndexField.CODE.getName()));
}
ir.close();
}
@@ -254,7 +254,7 @@
{
Document doc = ir.document(1);
assertEquals(1, doc.getFields(LabelIndexField.CODE.getName()).length);
- assertEquals(99998, NumericUtils.prefixCodedToInt(new BytesRef(doc.get(LabelIndexField.CODE.getName()))));
+ assertEquals("99998", doc.get(LabelIndexField.CODE.getName()));
}
ir.close();
}
Modified: search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/ArtistDismaxSearch.java
===================================================================
--- search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/ArtistDismaxSearch.java 2013-02-27 08:32:52 UTC (rev 13632)
+++ search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/ArtistDismaxSearch.java 2013-02-27 09:14:47 UTC (rev 13633)
@@ -23,7 +23,7 @@
/**
* Standard Search
*
- * @param searcher
+ * @param searchServer
* @throws Exception
*/
public ArtistDismaxSearch(AbstractSearchServer searchServer) throws Exception {
Modified: search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/LabelDismaxSearch.java
===================================================================
--- search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/LabelDismaxSearch.java 2013-02-27 08:32:52 UTC (rev 13632)
+++ search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/LabelDismaxSearch.java 2013-02-27 09:14:47 UTC (rev 13633)
@@ -41,6 +41,7 @@
Map<String, DismaxAlias.AliasField> fieldBoosts = new HashMap<String, DismaxAlias.AliasField>(3);
fieldBoosts.put(LabelIndexField.LABEL_ACCENT.getName(), new DismaxAlias.AliasField(false, 1.4f));
fieldBoosts.put(LabelIndexField.LABEL.getName(), new DismaxAlias.AliasField(true, 1.3f));
+ fieldBoosts.put(LabelIndexField.CODE.getName(), new DismaxAlias.AliasField(true, 1.3f));
fieldBoosts.put(LabelIndexField.SORTNAME.getName(), new DismaxAlias.AliasField(true, 1.1f));
fieldBoosts.put(LabelIndexField.ALIAS.getName(), new DismaxAlias.AliasField(true, 0.9f));
DismaxAlias dismaxAlias = new DismaxAlias();
@@ -52,7 +53,7 @@
/**
* Standard Search
*
- * @param searcher
+ * @param searchServer
* @throws Exception
*/
public LabelDismaxSearch(AbstractSearchServer searchServer) throws Exception {
Modified: search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/LabelQueryParser.java
===================================================================
--- search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/LabelQueryParser.java 2013-02-27 08:32:52 UTC (rev 13632)
+++ search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/LabelQueryParser.java 2013-02-27 09:14:47 UTC (rev 13633)
@@ -43,53 +43,10 @@
}
}
- else if (term.field().equals(LabelIndexField.CODE.getName()))
- {
- try
- {
-
- int number = Integer.parseInt(term.text());
- BytesRef bytes = new BytesRef(NumericUtils.BUF_SIZE_INT);
- NumericUtils.intToPrefixCoded(number, 0, bytes);
- TermQuery tq = new TermQuery(new Term(term.field(), bytes.utf8ToString()));
- return tq;
- }
- catch (NumberFormatException nfe)
- {
- //If not provided numeric argument just leave as is, won't give matches
- return super.newTermQuery(term);
- }
- }
else
{
return super.newTermQuery(term);
}
}
-
-
- @Override
- public Query newRangeQuery(String field,
- String part1,
- String part2,
- boolean startInclusive,
- boolean endInclusive)
- {
- if (
- (field.equals(LabelIndexField.CODE.getName()))
- )
- {
- BytesRef bytes1 = new BytesRef(NumericUtils.BUF_SIZE_INT);
- BytesRef bytes2 = new BytesRef(NumericUtils.BUF_SIZE_INT);
- NumericUtils.intToPrefixCoded(Integer.parseInt(part1), 0, bytes1);
- NumericUtils.intToPrefixCoded(Integer.parseInt(part2), 0, bytes2);
- part1 = bytes1.utf8ToString();
- part2 = bytes2.utf8ToString();
- }
- TermRangeQuery query = (TermRangeQuery)
- super.newRangeQuery(field, part1, part2, startInclusive, endInclusive);
- return query;
-
- }
-
}
Modified: search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/ReleaseDismaxQueryParser.java
===================================================================
--- search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/ReleaseDismaxQueryParser.java 2013-02-27 08:32:52 UTC (rev 13632)
+++ search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/ReleaseDismaxQueryParser.java 2013-02-27 09:14:47 UTC (rev 13633)
@@ -40,7 +40,7 @@
/**
* A catalogno may have been entered with spaces, this will incorrectly be treated as two separate tokens
- * by the term query wheresas the phrase query will correctly analyse it into one term. So in this case
+ * by the term query whereas the phrase query will correctly analyse it into one term. So in this case
* the term query could return no matches whereas the phrase query could get a match.
*
* @param term
Modified: search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd1/LabelMmd1XmlWriter.java
===================================================================
--- search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd1/LabelMmd1XmlWriter.java 2013-02-27 08:32:52 UTC (rev 13632)
+++ search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd1/LabelMmd1XmlWriter.java 2013-02-27 09:14:47 UTC (rev 13633)
@@ -66,7 +66,7 @@
String code = doc.get(LabelIndexField.CODE);
if (isNotNoValue(code)) {
- label.setLabelCode(BigInteger.valueOf(NumericUtils.prefixCodedToInt(new BytesRef(code))));
+ label.setLabelCode(new BigInteger(code));
}
String sortname = doc.get(LabelIndexField.SORTNAME);
Modified: search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/LabelWriter.java
===================================================================
--- search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/LabelWriter.java 2013-02-27 08:32:52 UTC (rev 13632)
+++ search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/LabelWriter.java 2013-02-27 09:14:47 UTC (rev 13633)
@@ -74,7 +74,7 @@
String code = doc.get(LabelIndexField.CODE);
if (isNotNoValue(code)) {
- label.setLabelCode(BigInteger.valueOf(NumericUtils.prefixCodedToInt(new BytesRef(code))));
+ label.setLabelCode(new BigInteger(code));
}
Modified: search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindLabelTest.java
===================================================================
--- search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindLabelTest.java 2013-02-27 08:32:52 UTC (rev 13632)
+++ search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/FindLabelTest.java 2013-02-27 09:14:47 UTC (rev 13633)
@@ -52,7 +52,7 @@
doc.addField(LabelIndexField.LABEL, "Jockey Slut");
doc.addField(LabelIndexField.SORTNAME, "Slut, Jockey");
doc.addField(LabelIndexField.ALIAS, "Jockeys");
- doc.addNumericField(LabelIndexField.CODE, 1234);
+ doc.addField(LabelIndexField.CODE, 1234);
doc.addField(LabelIndexField.BEGIN, "1993");
doc.addField(LabelIndexField.END, "2004");
doc.addField(LabelIndexField.ENDED, "true");
@@ -71,7 +71,7 @@
doc.addField(LabelIndexField.LABEL, "4AD");
doc.addField(LabelIndexField.SORTNAME, "4AD");
doc.addField(LabelIndexField.BEGIN, "1979");
- doc.addNumericField(LabelIndexField.CODE, 5807);
+ doc.addField(LabelIndexField.CODE, 5807);
doc.addField(LabelIndexField.TYPE, LabelType.PRODUCTION.getName());
doc.addField(LabelIndexField.COUNTRY, "unknown");
@@ -157,6 +157,16 @@
assertEquals("Jockey Slut", doc.get(LabelIndexField.LABEL));
}
+ @Test
+ public void testFindLabelByDismax3() throws Exception {
+ Results res = sd.search("1234", 0, 10);
+ assertEquals(1, res.totalHits);
+ Result result = res.results.get(0);
+ MbDocument doc = result.doc;
+ assertEquals("ff571ff4-04cb-4b9c-8a1c-354c330f863c", doc.get(LabelIndexField.LABEL_ID));
+ assertEquals("Jockey Slut", doc.get(LabelIndexField.LABEL));
+ }
+
@Test
public void testFindLabelByDefault() throws Exception {
@@ -275,6 +285,16 @@
@Test
public void testFindLabelByCode2() throws Exception {
+ Results res = ss.search("code:05807", 0, 10);
+ assertEquals(1, res.totalHits);
+ Result result = res.results.get(0);
+ MbDocument doc = result.doc;
+ assertEquals("a539bb1e-f2e1-4b45-9db8-8053841e7503", doc.get(LabelIndexField.LABEL_ID));
+ assertEquals("4AD", doc.get(LabelIndexField.LABEL));
+ }
+
+ @Test
+ public void testFindLabelByCode3() throws Exception {
Results res = ss.search("code:005807", 0, 10);
assertEquals(1, res.totalHits);
Result result = res.results.get(0);