PubMan Func Spec Search

UC_PM_SR_01 Do simple search
The user enters a search string and searches in defined item data (see PubMan_Indexing) and optionally in all files which do not have the content type “copyright transfer agreement” or “correspondence”.

Status/Schedule

 * Status: implemented
 * Schedule:R1

Triggers

 * The user wants to search for items by providing a simple search string.

Actors

 * User

Pre-Conditions

 * The simple search view is displayed.

Flow of Events

 * 1.	The user provides a search string into the simple search field. The search string consists of one or more search tokens. A token can be a single word (= term) or a phrase (= any string in double quotes). A term may contain wildcards in the middle or at the end (* for matching zero to many characters, ? for matching zero or one character). Wildcards are not allowed as the first character. Within a phrase token, no wildcards are allowed. Phrases are automatically right truncated, thus in its context, the phrase may be followed by any character. Tokens may be combined through boolean operators (AND, OR, NOT) and grouped by parenthesis. If no boolean operator is given between the tokens AND is used as default operator.
 * 2.	(Optionally) The user enables search in files.
 * 3.	The user chooses to start the search.
 * 4.	The system searches for the search string in defined data of the items and creates a search result containing all items visible to the user according to his privileges. If the search term or phrase was found in a file, the search result contains a text fragment including at least 10 words before and 10 words after the found term or phrase for every hit.
 * 5.	The system displays the list of items of the search result. Include use case UC_PM_BD_02 view item list.
 * 6.	The user is satisfied with the search result. The use case ends successfully.

Alternatives

 * 5a. No item matched the search request or no item from the result set is visible to the user.
 * 1.	The system displays a message (MSG_PM_SR_01). Continue with Flow of Events step 6.

Post-Conditions / Results

 * The search result is displayed.

Discussion
Talk:PubMan_Func_Spec_Search

UC_PM_SR_02 Search via ID
The user searches for a specific item by providing the item ID or a PID.

Status/Schedule

 * Status: in specification
 * Schedule:to be defined

Triggers

 * The user searches for a specific item by providing the item ID or a PID.

Actors

 * User

Pre-Conditions

 * The ID search view is displayed.

Flow of Events

 * 1.	The user enters a PID or an item ID into the ID search field.
 * 2.	The user chooses to start the search.
 * 3.	The system searches for an item whose PID or ID equals the specified search ID.
 * 4.	The system displays the details of the search result item..
 * 5.	(Optionally) The user chooses to revise the search.
 * 5.1.	The system displays the ID search view again with the search string the user entered before.
 * 5.2.	Continue with Flow of Events step 1.
 * 6.	The user is satisfied with the search result. The use case ends successfully.

Alternatives

 * 4a. No item was found or the user does not have privileges to view the item.
 * 1.	The system displays a message. Continue with Flow of Events step 5.

Post-Conditions / Results

 * A message or an item is displayed as a search result.

Discussion
Talk:PubMan_Func_Spec_Search

UC_PM_SR_03 Do advanced search
The user searches for items by providing several search criteria.

Status/Schedule

 * Status: in specification
 * Schedule:tbd

Triggers

 * The user wants to search for items by providing several search criteria.

Actors

 * User

Pre-Conditions

 * None.

Flow of Events

 * 1.	The user chooses to execute an advanced search.
 * 2.	The system displays the advanced search view, the following information should be searchable (see PubMan_Indexing): Keywords, Fulltext, Language of publication, Any Field, Genre, Persons with the option to select a CreatorRole, Organizations (see also scenario for history of affiliations in advanced search), Title, Classification, Dates with the option to select a DateType and to specify a range, Event, Identifier, Rev. Method, Source. In addition the user has the possibility to restrict the search:
 * to items, which have a context,
 * to items, which have a component with public available component (access level="public"), restricted-private available component (access level="restricted-private"), restricted-audience available component (access level="restricted-audience") or embargoed available component (access level="restricted-embargoed") or embargo datewith the option to select specify a range
 * or to items where the component has or doesn't have a certain content-category (e.g. all items, which have a component attached where the content-category is "supplementary material).
 * to items, which have local tags.
 * or to items, where the full text could not be indexed (work around for R5)
 * 3.	The user chooses one or more search field(s) and specifies the search string. By default the operator between the search fields is AND. The search string syntax is defined in UC_PM_SR_01 Do simple search.
 * 4.	 (Optionally)
 * the user changes one or several operators between the search field(s) to AND, OR or NOT. The final search query will be interpreted by its order, thus by implicitly setting brackets from left to right.
 * the user groups several search criteria in search field 'Search Terms' by bracketing them within parentheses . Parentheses affect the priority in which search criteria are evaluated.
 * 5.	The user chooses to start the search.
 * 6.	The system searches in the defined item data of the items for the search strings and creates a search result containing all items visible to the user according to his privileges. If the search term or phrase was found in a file, the search result contains a text fragment including at least 10 words before and 10 words after the found term or phrase for every hit.
 * 7.	The system displays the search fields, the search strings, the selected options, the operators and the list of items of the search result. Include use case UC_PM_BD_02 view item list.
 * 8.	(Optionally) The user chooses to revise the search.
 * 8.1.	The system displays the advanced search view again with the search criteria the user entered before.
 * 8.2.	(Optionally) The user removes one or more search criteria.
 * 8.3.	Continue with Flow of events step 3.
 * 9.	The user is satisfied with the search result. The use case ends successfully.

Alternatives

 * 7a. No item matched the search request or no item from the result set is visible to the user.
 * 1.	The system displays a message (MSG_PM_SR_01). Continue with Flow of Events step 8.

Post-Conditions / Results

 * A message or one or more items are displayed as a search result.

Discussion
Talk:PubMan_Func_Spec_Search

UC_PM_SR_04 Search and output
The user searches for items by providing several search criteria and retrieves the result in a specified export (structured, layout) and output format. See also Feeding local webpages and Exporting items

Status/Schedule

 * Status: implemented
 * Schedule:R3

Triggers

 * The user wants to search for items by providing several search criteria and retrieve the formatted result list in accordance with specified parameters.

Actors

 * User

Pre-Conditions

 * None.

Flow of Events

 * 1.	The user provides a search query string and an identifier of an export format (structured or layout format, see UC_PM_EX_01_Export_items).
 * 2. (optionally) In case a layout format is provided the user may in addition specify the output format (see Citation style manager service description for more details)
 * 3.	The user chooses to start the search.
 * 4.	The system searches in the defined item data of the items for the search strings, creates a search result containing all released items.
 * 5.	The system provides the user the search results in a desired export and output format. The use case ends successfully.

Alternatives

 * 6a. No item matched the search request or no item from the result set is visible to the user.
 * 1.	The system returns empty data stream.

Post-Conditions / Results

 * A datastream containing the search results (or empty datastream) in desired input and output format is provided to the user.

Discussion
Talk:PubMan_Func_Spec_Search

UC_PM_SR_05 Do administrative search
The privileged user searches for items by providing several search criteria.

Status/Schedule

 * Status: in design
 * Schedule:tbd

Triggers

 * The privileged user wants to search for items for quality assurance reasons.

Actors

 * Depositor
 * MD Editor
 * Moderator

Pre-Conditions

 * User has to be logged in and either have the role depositor, MD Editor or Moderator. The search is restricted to the responsible OU.

Flow of Events

 * 1.	The user chooses to execute an administrative search.
 * 2.	The system displays the administrative search view, except the search fields in UC_PM_SR_03 Do advanced search the following fields should be searchable: Item status(pending, submitted, released, withdrawn), Contexts(it is restricted to the contexts of the user), Depositor who creates the item('created by'), Modifier who made the last modification to the item('modified by'), the creation date of item with time range search('from'-'until'), the last modified time of item with with the option to specify a range('from'-'until').
 * 3.	The user chooses one or more search field(s) and specifies the search string. By default the operator between the search fields is AND. The search string syntax is defined in UC_PM_SR_01 Do simple search.
 * 4.	 (Optionally) The user changes one or several operators between the search field(s) to AND, OR or NOT. The final search query will be interpreted by its order, thus by implicitly setting brackets from left to right.
 * 5.	The user chooses to start the search.
 * 6.	The system searches in the defined item data of the items for the search strings and creates a search result containing all items visible to the user according to his privileges. If the search term or phrase was found in a file, the search result contains a text fragment including at least 10 words before and 10 words after the found term or phrase for every hit.
 * 7.	The system displays the search fields, the search strings, the selected options, the operators and the list of items of the search result. Include use case UC_PM_BD_05 Do administrative search.
 * 8.	(Optionally) The user chooses to revise the search.
 * 8.1.	The system displays the adminstrative search view again with the search criteria the user entered before.
 * 8.2.	(Optionally) The user removes one or more search criteria.
 * 8.3.	Continue with Flow of events step 3.
 * 9.	The user is satisfied with the search result. The use case ends successfully.

Alternatives

 * 7a. No item matched the search request or no item from the result set is visible to the user.
 * 1.	The system displays a message (MSG_PM_SR_01). Continue with Flow of Events step 8.

Post-Conditions / Results

 * A message or one or more items are displayed as a search result.

Discussion
Talk:PubMan_Func_Spec_Search

Date search
Details on Date search are specified here: Functional Specification for Date Search

Indexing
please see PubMan Indexing

Search query syntax

 * ?, *, \ are used as logical operators and are not escaped by default. If user wants to search for one of these, s/he has to escape the character. That means one has to use a backslash before the searching character e.g. \?, \*, \\
 * +, -, &, |, !,, {, }, [, ], ^, ~, : are escaped per default

Future developments

 * Expert Search: one textfield for freely defined queries, supporting "Klammerausdruecke"

HTML Prototype

 * The publicly available HTML prototype for searching and for other functionalities can be accessed from here: eSciDoc Prototyping.