Skip to main content
ExLibris
ExLibris Dev

How to add a Library drop-down to the Advanced Search

Overview

There is no built-in function to add a library list drop-down in the Advanced Search. If you're interested in this functionality there are two workarounds which can be implemented to achieve similar behavior:

 

1. Add a "Library" value as a pre-filter to one (or more) of the Complex Search Lines (which usually contain "Any", "Title", "Author" etc.). You can also add another Complex Search Line and make the Library a default value. Please note that in this case there will not be a drop-down of library names, but an open text field, like the other Complex Search Lines. The downside of this option is that if a user isn't particularly familiar with the libraries at your institution, they will not be able to find items from the correct place.

 

2. Configure additional scopes - a scope per each library, then add these scopes to your tabs, which will automatically generate a scope drop-down in the Advanced Search. You can then change the label to "Library" to suit your needs. This droup-down will appear on both Simple and Advanced search. If you wish to display it in Advanced Search only you will have to hide it in your Simple Search.

 

First Option

Out of the box you will not have the option to search by libraries. To search by this value, you will need to harvest library information into one of the local search fields under the search section of the PNX. 


1. Go to the Back Office > Advanced Configuration > Normalization Rules configuration. Edit your normalization rule set, and go to the Search section. Check the "Display Empty PNX fields" checkbox to see all of your unused lsr fields, then choose one of the empty fields, edit it, and add a rule to harvest data from the applicable field in your source records. 


          a. If you have your libraries configured in your Institution Wizard you will be able to use the "use mapping table" transformation and "ILS Library Codes" parameter (without the quotation marks). 


          b. If you do not use the Institution Wizard to define your libraries, make sure that you configure transformation routines which will transform the library codes in your original records to the library names you want to see in Primo. 


Tip: You can create a Normalization mapping table to do the transformation for you.


Use the test utility before saving any changes, to make sure that the rule created indeed works the way you expect it to.

 

When finished, save your changes and deploy.

 

You will then have to run a No harvesting - Update DS pipe to re-process all of your records and add this field to their PNX. 

 

2. Edit the Advanced Index Fields code table, located in the Back Office > Advanced Configuration > All Code Tables. 
Customize the applicable lsrxx line (for example, if you set to harvest library info into lsr03, customize th lsr03 line), and change the label in the Field Name column.

This is the label this field will have in the Advanced Search dropdown.

 

Save the change and deploy.

 

3. Finally, after everything else is complete, you will need to add this field to the Advanced Search dropdown. 
Go to the Back Office > Ongoing Configuration Wizards > Views Wizard and edit the applicable view. Page forward to the Tiles Configuration page and edit the Advanced Search tile.


Look at the "Define search pre-filters" section of the page - if you wish to have the library option in every one of the four drop downs that you have in Advanced Search, you will have to edit all of the Complex Search Lines. 


As you edit these fields, you will have the option to Create a new Search Field - choose the applicable option (it will appear under the label that you defined in the Advanced Index Fields code table) and click "Create". You can also create another Complex Search Line and choose the library as the default search field. 

 

Save your changes and deploy.

 

 

Second Option

1. You will need to define new scopes for the libraries. 
Go to the Primo Back Office > Ongoing Configuration Wizards > Pipe Configuration Wizard > Scope Values Configuration. Here in the "Create a new scope value" section of the page you would enter the scope code and name, check the "Use scope for: Search" checkbox and click "create".

 

a. If you use the Institution Wizard to define your libraries, use the same codes that you have in your Institution Wizard.

 

b. If you do not use the Institution Wizard to define your libraries, define whatever code values that suit your purpose best(for example, the library codes you will be harvesting from your ILS records).

 

After you've finished deploy your changes. 

 

2. Edit your normalization rules > Search section > searchscope field. 
Add a new rule which will harvest data from the applicable field in your source records. Note that the value assigned to this field needs to match the scope code you defined in the previous step. Make sure to use the test utility while you're working.

 

Save and deploy when you're finished. 

 

You will then have to run a No harvesting - Update DS pipe. 

 

3. Go to the Views Wizard > Search Scope List, and add a search scope for every scope you created. Then page forward to Tabs Configuration page and add all of the new search scopes to the tab(s) which should have the library drop down.

 

Page forward to the deploy page and run a deploy

 

4. After the deploy is finished go to the Search Tile Code Table and find the line which contains this code: default.search-advanced.scopes.label 
Change the value in the Description column according to your preference (for example, "Library"). If this line was never customized you might need to click on "Customize" (located to the far right of the line) and only then make your changes.

 

Save your changes and deploy.

 

//doorbell.io feedback widged