Search and filters:
In inventory we have implemented segmented control search. Where it's possible to toggle between Instance, Holdings, and Item. The general idea is that search in the Instance segment, support search on bibliographic data, search in the Holdings and Item segment is a combination of key data from the instance record combined with holdings and item specific data elements. The filters will be reflecting each of the individual segments and include search on effective location.
This is work being in development, but as of end of January (FOLIO Snapshot) following search and filter options are present :
Search options and filter options can be combined.
When search in a filter, the search typed will be highlighted. E.g.:
Finally we have implemented a Query search possibility, which can search across records, on all data elements. See more below.
Search using Query language (Instance, Holdings, Item segment)
See list of property names in Query Search - Inventory Beta - Metadata Elements
See tips written up by Julian Ladisch (insert link here)
Examples on CQL syntax:
|Query search||Search result|
id = "f31a36de-fcf8-44f9-87ef-a55d06ad21ae"
|give me the instance record where UUID = f31a36de-fcf8-44f9-87ef-a55d06ad21ae|
|hrid == "in00000009"||give me the instance record where the HRID = in00000009 (this number will later be an 11 digit sequence)|
|source = "folio"||give me all instance records where metadata source = FOLIO|
|contributors =/@name "frank"||give me all instance records where contributor = Frank|
identifiers =/@value/@identifierTypeId="439bfbae-75bc-4f74-9fc7-b2a2d47ce3ef" "(OCoLC)07574216"
|give me all instance records where OCLC number = (OCoLC)07574216 - result in BugFest environment|
series = "cooperative information systems"
|give me all instance records where the serie title = Cooperative information systems|
|publication = "MIT Press"||give me all instance records where the publisher = MIT Press|
|publication = "c2004"||give me all instance records where the publication year = c2004|
|physicalDescriptions = "bände"||give me all instance records where the physical description = bände|
|subjects = "history"||give me all instance records where the subject heading = history|
|instanceFormatIds = "f5e8210f-7640-459b-a71f-552567f92369"||give me all instance records where format term = online resource|
|holdingsRecords.callNumber = "TK5105.88815 . A58 2004 FT MEADE"||give me all holdings records where the call number = TK5105.88815 . A58 2004 FT MEADE|
|holdingsRecords.copyNumber = "C.2"||give me all holdings records where the copy number = C.2|
|holdingsRecords.holdingsStatements = "v.70-84 (1984-1998)"||give me all holdings records where the holdings statement = v.70-84 (1984-1998)|
|holdingsRecords.notes = "CharlotteTest"||give me all holdings records where the holdings notes = CharlotteTest|
|item.enumeration = "v.71"||give me all item records where the enumeration = v.71|
|item.electronicAccess = "table"||give me all item records where there in the electronic access elements is matching value = table|
|item.notes = "note"||give me all item records where the item note = note|
Boolean search within records and across instance/holdings/item:
|Query search||Search result|
|title = "qwer" and source = "folio"||give me all instance records where resource title = qwer AND metadata source = FOLIO|
|publication = "MIT Press" and holdingsRecords.callNumber = "TK5105.88815 . A58 2004 FT MEADE"found||give me all instance records where publisher = MIT Press AND the associated holdings records has holdings level call number = TK5105.88815 . A58 2004 FT MEADE|
subjects = "history" or identifiers = "OCoLC" not publication = "2017"
|give me all instance records where publisher = MIT Press AND the resource identifier is starting with OCoLC and does NOT has publication year = 2017|
|languages="eng" AND item.itemLevelCallNumber="TK5105*"|
give me all instance records where language = English AND the associated item records has item level call number starts with TK5105. The query includes wildcard search with an asterix
|identifiers =/@value/@identifierTypeId="216b156b-215e-4839-a53e-ade35cb5702a" "10419/192087"||give me all instance records where resource identifier type = handle AND resource identifier = 10419/192087|
source = "*" not source = "folio"
cql.allRecords = "1" not source = "folio"
|give me all instance records where metadata source is NOT Folio (but: MARC, and other source formats)|
|item.status="available" AND statusId="26f5208e-110a-4394-be29-1569a8c84a65"||give me all records where item status = available AND instance status term = Uncataloged|
Search queries that currently do not seem to work
|Query search||Expected search result||Actual search result||Tested by / on environment||Comments|
|discoverySuppress="false" AND holdingsRecords.discoverySuppress="false" AND item.discoverySuppress="false" AND item.barcode="null"|
Instance, Holdings, Item are not suppressed (for discovery?) AND item barcode = blank
example from 2020-01-30 Metadata Management Meeting notes
The instance record JSON includes a boolean "discoverySuppress" which is set to false in my instance example record.
Holding and item records don't have this elements in their response. Use Chrome's dev tools to verify.
I'm not sure how to search for NULL values. If an item has no barcode assigned, the element is not included in the JSON response either.
For some CQL queries you need the UUID of the value, because you cannot search for the actual term. To do this, you can use the developer tools that are built into your browser. In Chrome, press F12 to open the developer tools and switch to the "network" tab. Clear out any previous data by pressing "clear" and refresh the Folio page. Please note, that you'll first have to open a detail instance record in the third pane. After the page has loaded, you should look in the network data for the record UUID. Select it to see the record data in JSON format.
|Instance status types|
Not yet assigned