Faceted Browse - thank you

I just recently installed the newest Faceted Browse module version 1.4.0, and I just wanted to say thank you for making updates to this module. I use Faceted Browse as the central feature of records.njslavery.org, and it’s amazing what a difference small tweaks make. And the updated mobile user experience is much better! Thank you.

5 Likes

Thank you for the kind words! I agree that the mobile user experience is far better thanks to the hard work of @kim. If you have any ideas for further tweaking, we’re more than happy to discuss them with you.

@jbhistorian

I’m just starting to use the Faceted Browse module and find that the documentation is less than entirely clear, so hope you can help me out with some technical advice.

How did you build the pages that have further selection criteria in a column on the left? For instance your Events page has selection criteria such as “Primary participant name,” “Enslaver name,” “Location” and more down the left column. When I enter a value in one of the fields the display changes to show only those items that have that value. How did you build that page?

@bmeacham
Sure. I’ll share some screenshots that I hope can help.

The left side of the page is controlled using the Facets, as described in this section of the manual: Faceted Browse - Omeka S User Manual

Here is a screenshot from the admin side of my website (for the Events page), where I have added 8 different facets that can be used to narrow down the items based on various criteria:

The first 6 facets are “Value” type facets, the last two are “Date before” and “Date after” type facets. The “Value” type facets simply search a specific metadata field/property for a value. On the right side of the admin page you see the drawer with settings for one specific facet; this drawer pops out when you click the “edit” pencil button next to a facet or when you are first setting up that facet. Here you choose the property to search and select the type of search (a blank text input box, a drop-down box, or a list).

The example above is for the first facet, Primary participant name. It searches the property Event Participant, using “Text input” (a blank box) with query type “Contains” (so that the user can search by a partial name, such as only last name or only first name). This results in a box that looks like this on the website:

Screenshot below shows settings for “Participant age category,” which searches the property Age Category, using “Single (list)” option and query type “Is exactly” and I have specified the 5 potential search values (Infant, Child, etc).

This results in radio buttons on the website:
image

Next screenshot shows settings for “Event type” facet, which searches the property Event Type, using “Single (dropdown menu)” option and query type “Contains.” Under “Values” I have specified the values that I want to be available in the dropdown box.

Note that if I check off “Show all available values” at the bottom of the configuration, the system generates a list of terms that currently exist in my database in the “Event Type” property. This helps me review the values that I want to make available in my dropdown list. Note that the current terms for event types in the database are long, but I have used “Contains” as the query type, so that I can use a shortened term in the dropdown menu (i.e. “Birth” in the dropdown menu will bring up results that have “Life event: Birth” in the Event Type property).

This results in a dropdown box on the website. Note that the dashes between the groupings are not functional and will give “0 results” if a user selects the dash option. But I wanted to visually separate the dropdown menu options into groups, and this is the only way I could do that effectively:

So all together we get this result. With no facets selected:

With 3 facets filled in:

Hope this helps!

@jbhistorian
Thanks, that is very helpful. I have started to configure my Categories with facets as you show.

Now I am puzzled by something else. The results of my query don’t make sense.

I have have created a Faceted Browse page titled “Explore by Decade.” in it I have five categories, 1960s through 2000s, each defined by a search query such as dcterms:date starts with 198 for 1980s.

Before I add any facets, each decade results page in the end-user view shows all and only those items with a date that is in the selected decade, as expected.

I added a facet called “Location” defined as the Spatial Coverage property. In the Configure Facet panel I have four values, place names such as “New York,” “Boston” and the like, and my query type is Contains.

In the end-user view, when the page first appears no facet values are selected, and the result set includes all and only items that match the Decade. But when I select a facet value for Location, the result set shows all items that match that facet regardless of decade. It looks like the Location facet query overrides the initial Decade query. But I want it to show only those items that are in the chosen decade AND whose location matches my selection criterion. In other words,

  • Query: Decade = 1980s and Location contains “New York”
  • Expected result: Items that match both criteria
  • Actual result: Items that match only the Location criteria. It shows items with dates in the 1980s but also in other decades.

How can I get it to show items that match both criteria?

@bmeacham I tried to reproduce the issue you’re having, and I get the same (unexpected) result! Here’s an experimental Faceted Browse page I made for the decade of the 1800s (this is a test page that is not in the site navigation menu at the top). If you select one of the Locations then suddenly the events that show up are beyond the 1800s.

Screenshot with nothing chosen:

Screenshot with location chosen, suddenly disregarding the main search query (which is set to Date starts with 180):

Admin page:

@jimsafley This seems like unexpected behavior, do you know what’s causing this? Like Bill, for me the expected result would be to get items that match both criteria.

I have not experienced this problem before. I should note that my Faceted Browse pages generally do not use the “Search by value” option (which searches inside a specific property) in the Search query settings. This problem is happening when “Search by value” is used.

My active Faceted Browse pages use a Search query such as “Search by class” or “Search by template” or “Search by item set” only. Examples of admin settings below. No problems with any of these.

So my pages narrow down the items by set, class, or template. And then the Facets filter items by a specific property.

@bmeacham If this is, indeed, a bug and can’t be fixed soon, then I guess there are a couple of alternatives to achieve what you want.

One workaround would be to create an Item Set for every decade, and then do your Search query by Set. You would need to use Advanced search to find the relevant items from the same decade, then use the Bulk Edit module to add all those items to the appropriate Item Set. Of course, the drawback is that new items you create later will not automatically be added to the Item Set; you’d have to add each new item to the appropriate decade’s Item Set manually.

Alternatively, you could use the “Date after” and “Date before” type Facets to give your users the option to narrow down events by decade, as I did here on my Events page. My Date field uses the data type ISO Timestamp, which I think might be required for this Facet to work (I haven’t tested it with dates that are entered as plain text data type, but I would guess it would not work).

This is a bug. The fix should be published today (v1.4.1).

1 Like

I have installed the new version of the module and my issue is fixed. I am quite impressed with how fast the Omeka developer(s) have fixed it. Kudos to @ jimsafley and the Omeka S team!

1 Like

@ jbhistorian
Thanks for your suggestions. The new version fixes my issue, so I am good for now. I’ll keep your suggestions in mind, as I am still learning about how this module works. I do appreciate your willingness to help. Hooray for open-source community-based development!

1 Like