In the search page you can search for Intellectual Entities, Representations or Files (use the down arrow to select the search domain). For each one of these domains you can search in all its properties or in specific properties (use the down arrow to expand the advanced search). For example, if you select Intellectual Entities, you can search in a specific field of the descriptive metadata, or find files of a certain format if the Files advanced search is selected.
The search engine locates only whole words. If you want to search for partial terms you should use the ‘*’ operator.
The following search operators are at your disposal:
- Exact sentence (e.g. “Miguel Ferreira”)
- Terms begin with (e.g. Miguel F*)
- Ignore character (e.g. Miguel Ferreir?)
- Exclude term (e.g. -Miguel Ferreira)
- Similar terms (e.g. Ferreir~)
- Number range (e.g. 1900..2000)
- Term reunion (e.g. Miguel OR Ferreira)
Search custom metadata fields
There are several steps to do it:
- Generate SIPs with your new descriptive metadata type and version
- Configure RODA to index your new descriptive metadata format
- Configure RODA to show fields in the advanced search menu
- Configure RODA to display your metadata
- Configure RODA to allow to edit your metadata with a form
1. Generate SIPs with your new desc. metadata type and version
On the SIP you must define the descriptive metadata type and version. As you are using your own, you should define metadata type OTHER, other metadata type e.g. “GolikSwe” and metadata type version e.g. “1”. This can be done directly in the METS or using the RODA-in application or the commons-ip library.
2. Configure RODA to index your new desc. metadata format
On RODA, you must configure how it can index this file. To do so, you must define the XSLT under
$RODA_HOME/config/crosswalks/ingest/ with a name that is calculated by your metadata type and version.
On the example with metadata type=OTHER, other metadata type=”GolikSwe” and metadata version 1, you must create the file
You can look at examples in the
$RODA_HOME/example-config/crosswalks/dissemination/ingest/ or the online version.
The resulting XML must be something like:
<doc> <field name="title">abcdefgh</field> <field name="origdesc_txt">abcdefgh</field> <field name="destructiondate_txt">2020-01-01</field> <field name="destructiondate_dd">2020-01-01T00:00:00Z</field> </doc>
- There are some reserved field names, specially
dateFinal, that define what appear on the lists
- You can add new specific fields, but must always add a suffix for the data type. The most used suffixes are “_txt” (any string tokenized), “_ss” (non-tokenized strings for identifiers), “_dd” for ISO1601 dates.
- The definition of the reserved fields names is made here but you may need to also access here to find out the final name.
- A complete list of suffixes and fields types is available at the SOLR base schema.
To apply the changes on the stylesheet you must ingest new content or re-index existing content.
3. Configure RODA to show fields in the advanced search menu
roda-wui.properties to add an new advanced search field item:
ui.search.fields.IndexedAIP = destructiondate # add new field to the list of fields for items (i.e. AIPs), other options are representations or files ui.search.fields.IndexedAIP.destructiondate.fields = destructiondate_txt # the id of the field in the index, equal to the one on the stylesheet you create ui.search.fields.IndexedAIP.destructiondate.i18n = ui.search.fields.IndexedAIP.destructiondate # key for the translation in ServerMessages.properties ui.search.fields.IndexedAIP.destructiondate.type = text # the type of the field which influences the search form input ui.search.fields.IndexedAIP.destructiondate.fixed = true # if it appears on advanced search by default or if it needs to be added via the "ADD SEARCH FIELD" button.
You should also add the necessary translations to your
$RODA_HOME/config/i18n/ServerMessages.properties, and in all languages you which to support.
ui.browse.metadata.descriptive.type.golikswe_1=Golik SWE (version 1)
ui.search.fields.IndexedAIP.destructiondate= Destruction Date