Talk: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:R4

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): Language of publication, Any Field, Genre, Persons with the option to select a CreatorRole, Organizations, Title, Topic, Dates with the option to select a DateType and to specify a range, Event, Identifier, Source. In addition the user has the possibility to restrict the search to items, which have a context (restrict to items, that have a full text attached), to items, which have a component with public available component (access level="public"), 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).
 * 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_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 specification
 * Schedule:R4

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, the following information should be searchable (see PubMan_Indexing): Language of publication, Any Field, Genre, Persons with the option to select a CreatorRole, Organizations, Title, Topic, Dates with the option to select a DateType and to specify a range, Event, Identifier, Source, Submission/Release Comment. In addition to that the user can search for items, where a specific field is empty (e.g. give me all items where abstract is not filled). Further more, the user has the possibility to restrict the search to items, which have a context (restrict to items, that have a full text attached) or the other way round (no context attached), to items, which have a component with public or private available component (access level="public" or "private"), 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"). The search can be executed on all data (pending, submitted, released, withdrawn) or only on one of them e.g. only search within submitted items.
 * 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 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

TODO (Input from Natasa, Michael)
--Natasa 09:21, 2 September 2008 (UTC)
 * define which versions are indexed with respect to statuses
 * define privileges (which roles can perform Admin search, on which data the admin search can be performed i.e. restricted to institute, context etc).
 * I decided to restrict on OU level, because the user is responsible for one OU, right? --Nicole 10:51, 19 September 2008 (UTC)

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

HTML Prototype

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