Search server fixes released

Last week’s search server release had some bugs that we decided should be fixed sooner than later. Paul Taylor rose to the challenge and fixed 4 important bugs and we just finished releasing the updated code. Thanks for your efforts, Paul!

Release Notes – MusicBrainz Search Server – Version 2013-04-04


  • [SEARCH-279] – Seach server returning wrong results
  • [SEARCH-280] – Artist search DAVID BOWIE → FRANZ SCHUBERT (score 100) !? Bowie (score 0)
  • [SEARCH-281] – If set explain=true option with dismax search it actually does a non-indexed search


  • [SEARCH-267] – Create new rewrite method for Dismax FuzzySearch

Updated search server now live

We’ve just updated our search servers to the latest version. Thanks to Paul Taylor for his long hard work porting our code to Lucene 4.1. Big thanks also to Murdos and Nikki for helping with this release!

Also, we’ve installed a small gigabit ethernet switch for our search server cluster so that we can move new search indexes around much faster. Hopefully we will see indexes updating in just over 2 hours from now on.

Read on for all the details of this release:

Release Notes – MusicBrainz Search Server – Version 2013-03-29


  • [SEARCH-239] – Search updater doesn’t update the index last-updated value returned by SEARCH-232
  • [SEARCH-244] – Since the October Schema Change Release, search server is now returning empty join phrases when once doesnt exist , whereas before it didn’t display it all
  • [SEARCH-247] – Runtime Exception: The property or field count on the class org.musicbrainz.mmd2.Medium$TrackList is required to be included in the propOrder element of the XmlType annotation.
  • [SEARCH-263] – Search server applications do not gracefully disconnect from PostgreSQL on termination


  • [SEARCH-217] – Allow searching and displaying of folksnomy tags for the release entity
  • [SEARCH-246] – Extend support for searching for blank parameters to ISWC and ISRC

New Feature

  • [SEARCH-228] – Let Dismax Search for Labels search Label Code


Search server release: 2012-09-18

We’ve just updated our search servers with a new release. This release adds support for a new improved json format for the search server and will be publicly available after the next mbserver release. We also now output the date (in the XML/json) the index was last updated so you know how old the results received are. This will be exposed to the end-user in the web search results in an upcoming release of musicbrainz-server.

Thanks to Paul Taylor and Aurélien Mino for making this release happen!


  • [SEARCH-232] – Search server should return information about when the indexes were last updated

New Feature

Search server release: 2012-05-15

In case you haven’t gotten enough of release announcements, we have another one for you. Yesterday during the main releases we also released a new search server to match the main server release. Thanks much to Paul Taylor for working on this release to be timed perfectly!

UPDATE: The search server and the MMD schema repositories have been tagged with this tag:



  • [SEARCH-198] – The artist is getting a lowered score on MBS
  • [SEARCH-199] – Search includes empty annotations
  • [SEARCH-200] – Search on release giving to much boost to matches on CatalogNo
  • [SEARCH-201] – explain option doesnt work if search results contain non ISO-8859-1 characters
  • [SEARCH-216] – Null pointer exception when building freedb


  • [SEARCH-157] – Be able to search for a track by its metadata OR its puid
  • [SEARCH-186] – Search Server has hard coded redirect URL
  • [SEARCH-187] – Update Junit Test from 3 to 4
  • [SEARCH-202] – Allow searching for RGs based on their releases’ status
  • [SEARCH-204] – Upgrade codebase to Lucene 3.6
  • [SEARCH-214] – Add release group ID to the web service indexed search results for recordings

New Feature

  • [SEARCH-205] – Search server should return multiple ISWCs for works
  • [SEARCH-207] – Changes due to introduction of ISO-3 language code
  • [SEARCH-208] – Chnages due to Split release group attributes into two types Schema Change
  • [SEARCH-209] – Support for Multiple IPI Artists
  • [SEARCH-211] – Support for new Track ‘Number’ field in a track
  • [SEARCH-212] – Add abiility to index, display and search works by lyrics language as part of schema change
  • [SEARCH-213] – Changes due to MBS-1385:Support unknown end dates


Search server index updating paused

Tomorrow’s release requires us to update the main server and the search servers at the same time. This presents a bit of a chicken-and-the-egg problem: We need to build new indexes even before we’ve migrated the database to our new schema.

To accomplish this, I’ve stopped index updating and created a separate database that will allow me to build some indexes that will be a few hours out of date when we release tomorrow. They will be slightly old, but at least we will have indexes that work.

I expect the indexes to be up to date about 3 hours of the release is complete. If you find the indexed search out of date, please use the direct search in the meantime.

Sorry for any inconveniences this may cause.

Search server release: 2012-03-23

Earlier today we switched the latest release of our search server live. Paul says:

In this new release of the search server the basic search will now search more fields and return variations of what you searched such as spelling mistakes and the scoring has also been improved. Advanced search now lets you search for when a field doesn’t exist and you can do exact searches that take accent characters into account using the new accent fields.

We’ve also upgraded to the latest version of Lucene, added a way to see how scores are calculated for results and added integration tests. Hopefully this will all help with future stability.

UPDATE: This code lives in svn and can be found at r13480. I’ve also created this tag.

Thanks for your hard work on this release, Paul. And also thanks to Ollie for taking time to push the server portions of this live today. Here are our release notes:


  • [SEARCH-168] – Recording Search doesnt consider track duration only recoridng duration
  • [SEARCH-191] – Duplicate qdur values being added to document


  • [SEARCH-152] – Update Code to use Lucene 3.5
  • [SEARCH-160] – Searching artist by name and initial(s) is impossible, the initials are useless
  • [SEARCH-163] – Search for exact string, with no accents
  • [SEARCH-166] – Artist search does not always offer the obvious (to a human!) results
  • [SEARCH-170] – Move Basic search logic from mbserver to searchserver
  • [SEARCH-171] – Basic Search should work more like Solr Dismax Parser
  • [SEARCH-173] – Index Catalogos without space
  • [SEARCH-174] – Provide a way to search for empty/non-empty fields
  • [SEARCH-177] – Support for initialize index remotely http://localhost:8080/?init=mmap
  • [SEARCH-188] – Add Integration Tests

New Feature

  • [SEARCH-172] – Make it possible to search for barcode:"[none]"
  • [SEARCH-194] – Add debugging option to be able to get lucene explain for results

Search server bug fix release: 2011-12-24

On Christmas eve we updated our search servers with a couple of bug fixes, but then got side-tracked with Christmas itself to write this blog post. I’m finally now fixing this. 🙂

We updated our search server so that is it rate limiter enabled, which will allow us to free up another machine in the New Year. We also have two fixes in search to give better results when a name is made up of numbers, or a title contains punctuation characters.

Release Notes – MusicBrainz Search Server – Version 2011-12-24


  • [SEARCH-158] – artist not found when searching
  • [SEARCH-159] – : shoud be ignored when searching

New Feature

  • [SEARCH-161] – Search server should consult ratelimit-server

Many thanks to Paul for working on this!