Problem with search syntax or search engine?

ive chosen to default my search queries using the undocumented/supported SOLR dismax=true parameter… simply when searching with dynamic variables such as names, it seems to me to return better results…

take the search: using release Batman Begins and artist ID for Hans Zimmer

http://musicbrainz.org/ws/2/release-group/?query=arid:"e6de1f3b-6484-491c-88dd-6d619f142abc"AND%20release:Batman%20Begins&fmt=json&dismax=true

Here the first result is spot on returning Batman Begins by artist Hans Zimmer AND James Newton Howard… with a bunch of other results to follow… great.

But then when ENHANCING the query by adding the artist id for James Newton Howard:
http://musicbrainz.org/ws/2/release-group/?query=arid:"e6de1f3b-6484-491c-88dd-6d619f142abc"%20AND%20arid:"f6580b26-77f7-4a7b-8513-6db0476e8f21"%20AND%20release:Batman%20Begins&fmt=json&dismax=true

No results…

at first I would not think that adding valid information would have any reason to detract from the search result, but then considering how DisMax in Solr works, i could conceive there might be some problem when 2 parameters have the same field, in this case ‘arid’

now if i simply substitute the multiple arid fields for their multiple artist fields counterparts using names, the search again works:

http://musicbrainz.org/ws/2/release-group/?query=artist:"Hans%20Zimmer"%20AND%20artist:"James%20Newton%20Howard"%20AND%20release:Batman%20Begins&fmt=json&dismax=true

so it does not seem to be strictly a multiple field value problem, but perhaps multiple field vales that are ids.

So is using dismax and multiple id fields incompatible?
Or is there a better or correct syntax for including 2 values for the same field?

I tried many combine the arids with no avail…
arid:"e6de1f3b-6484-491c-88dd-6d619f142abc AND f6580b26-77f7-4a7b-8513-6db0476e8f21"
arid:"e6de1f3b-6484-491c-88dd-6d619f142abc + f6580b26-77f7-4a7b-8513-6db0476e8f21"
arid:(“e6de1f3b-6484-491c-88dd-6d619f142abc” AND “f6580b26-77f7-4a7b-8513-6db0476e8f21”)
arid:(“e6de1f3b-6484-491c-88dd-6d619f142abc” && “f6580b26-77f7-4a7b-8513-6db0476e8f21”)
arid:(“e6de1f3b-6484-491c-88dd-6d619f142abc” “f6580b26-77f7-4a7b-8513-6db0476e8f21”)
arid:(+“e6de1f3b-6484-491c-88dd-6d619f142abc” +“f6580b26-77f7-4a7b-8513-6db0476e8f21”)
and then some…

Any ideas on this?

@ijabz, maybe you can help with that? I know nothing about how that works.

Musicbrainz is currently using lucene to run the search server.
There is a project to use solr as the search server but that work is not complete.
The project seems to be nearly there but it has not been a priority to finish it.

good to know…

ya Id sure appreciate any advice on making a proper search with ids…

In fact @Gentlecat has been working on it for a while now, there was just quite a lot left to do. Much closer to being ready now :slight_smile:

Yes.

Taking website search Indexed search with advanced query synatx lets you search by various specified fields, whereas Indexed search on the website searches whatever you have entered against preset of fields (i.e for artist it used artist, sortartist and alias). Dismax search is a variation of this, it weights a predetermined set of fields to give better results, but the fields have to be predefined

So for for eleasegroup it searches Release_GROUP, RELEASE_GRUP_ACCENT, RELEASE, ARTIST and ARTIST_NAMECREDIT.

For example if I amend your first query, this gives the same number of results even after removing the arid field part
because the arid is not being considered as a search field, only as a bit of text to search for.

And And And And And And And And And And release:Batman Begins&fmt=json&dismax=true

So if you want exacting search against particular fields then dismax shoud not be used. If you just want enter key textual search terms without fields then dismax may give you good results.

2 Likes

thanks for the clarification and definitive answer. now i know what to work with and without…