Advanced search

You are here

hplantin's picture

One of the projects we have on the queue for this summer is an advanced search capability. Currently searches can't span entity types. That is, you can't put constraints on two different sorts of things at the same time. You can't search for "Amazing Grace" in a minor, for example, because "Amazing Grace" is a constraint on the text and the key is a constraint on the tune. You can't search for a Lutheran version of Amazing Grace because denomination is an attribute of a hymnal and "Amazing Grace" is a part of the first line of a hymn.

The plan we're trying to flesh out actually reduces our current three search options to two, but it makes those two more flexible.

The first part of the plan is to keep the "search the entire hymnary" box but to add capabilities. It would be able to use some operators, such as "" for exact search and otherwise do a keyword search. The - (minus) operator could be used to exclude terms. You could type "hymnalID:PH1895" to restrict the search to a particular hymnal. In short, it could be used just as it is now but it would be also possible to add constraints and operators like those used in Google's advanced search.

The other search option would be like the restriction search widgets available in the left sidebar on the Texts, Tunes, etc. tabs. We would offer a single, unified widget with a complete set of options for all entity types and make it available everywhere. This widget would allow users to put constraints on different entity types simultaneously. The desired result type would be selected as before, by clicking one of the tabs ("Texts", "Tunes", etc.). In order to keep the list of options to a reasonable length we'd probably have to allow users to select an attribute they want to constrain from a drop-down list.

One additional change would be to add an "Instances" tab (is there a better name?) to indicate that the result type should "instances" or hymns as they appear in a particular hymnal.

So, for example, if you want to search for instances of "amazing grace" in a minor, you'd select the "first line" constraint in the text section and type in "Amazing Grace." You'd select the "Key" constraint in the tune section and select "a minor". You'd click the "instances" tab to select the result type and see results.

We would eliminate the "quick search" option on the home page entirely and show the unified restriction search widget there as well.

Comments or suggestions?