MilkDud schrieb:
Ok, so lets suppose i did index across just the album.  Using that
index, how would I be able to handle searches of the form "artist name
track name".

What does the user interface look like? Do you have separate fields for
artists and tracks? Or just one field?

If i do the search using a phrase query, this won't match anything
because the artist and track are not in one field (hence my idea of
creating a third concatenated field).

What do you expect the user to enter?

* "dream theater innocence faded" - certainly wrong
* dream theater "innocence faded" - much better

Use the DisMax query parser to read the query, as I suggested in my
first reply. You need to become more familiar with the various search
facilities, that will probably steer your ideas in more promising
directions. Read up about DisMax.

If i make it a non phrase query, itll return albums that have those
words across all the tracks, which is not ideal.  I.e. if you search
for a track titled "love me" you will get back albums with the words
love and me in different tracks.

That doesn't make sense me to me. Did you inspect your query using
debugQuery=true as I suggested? What did it boil down to?

Basically, i'd like it to look at each track individually

That tells me you're thinking database and table scan.

and if the artist + just one track match all the search terms, then
that counts as a match.  Does that make sense?  If i index on the
track level, that should work, but then i have to store album/artist
info on each track.

I think the following makes much more sense:

An album should be a document and have the following fields (and
maybe more, if you have more data attached to it):

id - unique, an identifier
title - album title
interpret - the musician, possibly multi-valued
track - every song or whatever, definitely multi-valued

Read up about multi-valued fields (sample schema.xml, for example, or
Google) if you're unsure what this is; your posting subject, however,
suggests you aren't.

Regards,

Michael Ludwig

Reply via email to