Searching our database

The Scheme's website has been completely rebuilt and now uses some powerful, open source software from the Apache Foundation to provide its search facility backbone. This search engine technology is now quite common and is called SOLR. To get the most out of the search engine and become a 'super-user' or 'search ninja', there's lots of hints and tricks that will help to retrieve optimal result sets.

We now have a range of indexes that are exposed on the website, but in this instance, the index in question is just the one for searching for finds and we have an array of forms that you can use to retrieve data, or you could just use the single text box found on the start page for the database.

Search box

This single search box queries a "catch all field" and allows you to retrieve lots of information and if you know your syntax, it is extremely powerful; the following fields are searched from the single text box search:

  • old findID
  • notes
  • description
  • broadperiod
  • inscription
  • obverse description
  • reverse description
  • obverse legend
  • reverse legend
  • county
  • objecttype
  • smr reference
  • treasure ID number
  • denomination
  • mint
  • tribe
  • known as
  • ruler
  • classification
  • sub classification
  • culture
  • material
  • current location
  • subsequent action
  • museum accession number
  • rally name
  • type
  • category
  • district
  • region
  • hoard name
  • discovery method
  • moneyer
  • mint mark
  • reverse type
  • CCI number

To search on specific fields in the schema use the following syntax as a basic guide:

field name in schema:type of content

So for example enter: objecttype:COIN

The table below gives you the friendly name, the name in the database schema and the type of content you can enter.

Field included Field name in schema Type of content
Object type (case insensitive) objecttype string eg COIN
Object ID number old_findID string eg WMID-3FE965
Notes notes string eg notable example
Description description string eg patera from
Broadperiod broadperiod string eg ROMAN
Inscription inscription string eg IHS
Obverse legend obverseLegend string eg IHS
Reverse legend reverseLegend string eg IHS
Obverse description obverseDescription string eg bust
Reverse description reverseDescription string eg prow
County of origin county string eg SUFFOLK
SMR reference number smrref string eg AD1253
Denomination denominationName string eg denarius
Mint mintName string eg Arles
Iron Age tribe tribeName string eg dubonni
Known as pseudonym for findspot knownas string eg Clare
Object classification classification string eg Williams type 1
Object sub classification subClassification string eg rotary
Ascribed culture cultureName string eg Saxon
Primary material material string eg silver
Current location currentLocation string eg british museum
Subsequent action subsequentActionTerm string eg returned to finder
Museum accession number musaccno string eg abc2344
The rally name rallyName string eg Water Newton
Medieval type (numismatics) typeTerm string eg William I BMC ii (N 842)
Medieval category (numismatics) categoryTerm string eg Late medieval french coinage
District (where found) district string eg SOUTH CAMBRIDGESHIRE
Euro governmental region regionName string eg East Anglia
Name of hoard hoardName string eg Staffordshire hoard
Method of discovery discoveryMethod string eg gardening
Moneyer of coin moneyerName string eg Roger
Mintmark of coin mintmark string eg TP
Celtic Coin Index Number cciNumber string eg 00.001
Allen Type ID allenType string eg AMMINUS
Mack Type number mackType string eg 101
Ancient British Coins Number abcType string eg 1212
Van Arsdell Type vaType string eg 12.01

One can search on any of these fields by following this format:

fieldname:query

For example

cciNumber:10.0844

Within SOLR's power is the possibility to use a variety of operands, you might have used similar on Google or Yahoo! in the past. These are:

  • AND
  • NOT
  • OR

By default, any terms included in your text box are concatenated (or joined together) for searching with the AND operand. You can easily over ride this, for example, you would like to find all Roman objects which are not coins. In the search box, enter:

roman NOT coin or roman -coin

This searches the index for all mentions of Roman where coin is not mentioned; you will find this brings back objects from multiple periods, perhaps not what you want?If for example, you wanted to get all non numismatic material from the Roman period, you can be more powerful with your search and enter this syntax:

broadperiod:ROMAN NOT objecttype:coin

Or if you want to retrieve Saxon or Viking from the text, you could do:

saxon OR viking

Again, you might want to perform a more powerful search, so you could do this:

cultureName:"Anglo-Saxon" OR cultureName:"Viking"

Or perhaps you would like to find all Celtic Coin Index numbered coins, which haven't been entered by the people working for the CCI institution:

cciNumber:* -institution:CCI

Search results can be filtered simply by using the filters on the right of the screen (see image below) and these have been chosen based on analysis of the search logs.

Example filter

If you click on one of the words, this will narrow your search by adding an argument to your search string. To remove this filter, you just need to click on the link labelled:

Clear this filter

Filters that are available are:

  1. Object type
  2. Institution
  3. Broad period
  4. Material
  5. Workflow
  6. County
  7. Denomination
  8. Mint
  9. Ruler or issuer

Each of these facets or filter is also returned in the JSON response format, so a developer can use these in their development of a third party app. Filters will only appear when they are available, so for example, the numismatic filters won't appear (hopefully) if you select an object type that is non-numismatic.

Sometimes one might want to run a search based around a wild card or retrieve all values for a field. To do this use the character *. For example, to retrieve all

To find all records where a specific field is not completed use syntax:

-field:[* TO *]

For example you want to find all records where discovery method is incomplete:

-discoveryMethod:[* TO *]

To find a range within a field use the syntax:

field:[* TO value]

For example you want to find all records with a quantity between 24 and 36:

quantity:[24 TO 36]

Search results can be returned in a variety of formats:

  1. CSV (Comma separated values - which can be used in open office or excel): this can be only be retrieved if you are logged in. Limited to 12,000 records
  2. KML - for use in web mapping, it can be retrieved when logged in and is limited to 2000 records
  3. json - if you want to get results back for building third party applications
  4. rss and atom - this can be used in feed readers

To get a result back in a different format, just add /format/{format} to the end of your url

In all of the above examples, the search returns a string that looks like this: http://finds.org.uk/database/search/results/q Anything after the 'q' is the query that is performed. If you use any of our search forms, you will see a much more exact search string being produced. For example, if you use the Roman Numismatic search form and choose to search on the denomination of milarensis, you will get this search string: http://finds.org.uk/database/search/results/denomination/30/objecttype/COIN/broadperiod/ROMAN

Due to the nature of the records we collect (sensitive sites, landowner privacy, local recording policy), it is necessary to remove some results from your search if your access level is below Finds Liaison Officer status. You can find out what you can and cannot see from the help topic "access levels and what you can view". If you are a public registered member or an unregistered user, when searching on the index, we remove objects in the following two workflow categories:

  • quarantine (held back as either a reminder, or to check on some information, we should probably call this category something else!)
  • on review (people are normally still working on these)

If you are a public registered or unregistered user and you search on the parish, sometimes results will not be available. At the point of data entry, one can choose to hide the geospatial data from lower access groups by filling in a field entitled 'knownas'. When this is completed and you search for a parish your results will be filtered out with all finds where known as is NULL and objects are in the workflow groups of 'validation' and 'published'.