First, thanks for the new modules library. It looks sharper than the previous one and works well. But there was one resource in the old model that I considered very useful: the ability to search for modules sorted by publisher. I don’t know if that was popular with other users, but I used it a lot. So, it would be nice if that could be reinstated without a lot of extra work by the developers.
The issue for faceted search is here. There hasn’t been any work on it since last time it came up in the forum. I asked for input on how it should behave and how the interface should look, but there haven’t any replies so I put this to the bottom of my list while I wait.
Make a separate Advanced search with buttons from the main and search pages.
That page will have a form a la
Search by
Title:___________________________________________________
Publisher:_______________________________________________
Project owner:____________________________________________
Year from:____ to _____
Playing time from ____ minutes to _____ minutes
Number of players from ____ to _____
Tags: ___________________________________________________
Here, Title and Publisher are free-form text fields, and Year, Playing time, and Number of playersfrom and to fields are number entries.
Tags and Project owner should allow for multiple entries, preferably auto-completed on what is known in the database backend.
If a field is not specified, then that field is not used in the query.
If multiple fields are specified, then the query should be an AND query fulfilling all sub-goals. E.g., search for Title is Gettysburg, and Project owner is cholmcc, would run the query
SELECT id FROM projects JOIN owners ON owners.project_id = projects.id JOIN users ON users.id = owners.user_id WHERE project.name LIKE Gettysburg and users.username LIKE cholmcc
If a from field is specified, then that will be the lower bound of a match, e.g., specifying Playing time from 60 minutes will run the query
SELECT * FROM projects WHERE game_length_min >= 60
if a to field is specified, hen that will be the upper bound of a match, e.g., specifying Playing time to 60 minutes will run the query
SELECT * FROM projects WHERE game_length_max <= 60
Specifying both from and to sets up a range query. E.g., specifying Playing time from 30 minutes to 60 minutes will run the query
SELECT * FROM projects WHERE game_length_min >= 30 AND game_length_max <= 60
Queries on Project owner and Tags are inclusive. E.g., searching for Tags era:WWII and theatre:eastern front will run the query
SELECT project_id FROM tags WHERE tag LIKE era:WWII OR tag LIKE theatre:eastern front
That would work; it would be close to the BGG search model.
What I had in mind was simply a new search option below the current alphabetical, newly added and recently updated fields; I did not suggest this because it would require Publisher pages (like the ones in the deprecated wiki), and so a new step in the search process and added work for the developers. ( I don’t have a clue about the popularity of search by Publisher among regular users.)