search

package
v0.3.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 29, 2023 License: MIT Imports: 6 Imported by: 9

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func IsQuery added in v0.2.0

func IsQuery(s string) bool

IsQuery is a very simple determination if a string looks like a faceted search query. If the string starts with low-case letters following a colon, the string is considered to be a query.

Such a simple method is used, because neither scientific names or files normally have such pattern at th start of their string.

Types

type Input

type Input struct {
	// Query field contains the query of the faceted search.
	//
	// Example: `g:Bubo sp:bubo a:Linn. yr:1700-1800`
	Query string `json:"query,omitempty"`

	// DataSourceID field contains data-source ID for ParentTaxon and
	// serves as a preferred data-source in the final search results.
	DataSources []int `json:"dataSources,omitempty"`

	// WithAllMatches field indicates if all found data should be provided by the
	// output, or only the "best result".
	WithAllMatches bool `json:"withAllMatches,omitempty"`

	// ParentTaxon creates a filter to return only results that have the
	// required taxon in their classification path. The field uses the first
	// ID from DataSourceIDs.
	ParentTaxon string `json:"parentTaxon,omitempty"`

	// NameString is a convenience field. It allows to provide faceted search
	// data as a freeform 'name-string' input. The name-string does not have
	// to be a 'real name', and it suppose to have only one component of each
	// kind. For example it should contain one infraspecific epithet, and
	// one author. If it has more, a warning will be generated and only one
	// of the values of a ducplicated category will be used.
	//
	// For example: `Aus bus cus A. 1888`.
	//
	// If NameString is given, all other inputs for genus, species,
	// authors, year will be ignored.
	NameString string `json:"nameString,omitempty"`

	// Genus field creates a faceted search filter by a genus name. The name
	// can be abbreviated up to one character following a period.
	//
	// For example: `H.`, `Hom.`, `Homo`.
	Genus string `json:"genus,omitempty"`

	// SpeciesAny field creates a faceted search filter for either specific or
	// infraspecific epithets. If SpeciesAny is given Species and SpeciesInfra
	// fields are ignored.
	SpeciesAny string `json:"speciesAny,omitempty"`

	// Species field creates a faceted search filter for specific epithet only.
	Species string `json:"species,omitempty"`

	// SpecieInfra field creates a faceted search filter for infraspecific
	// epithets. Such epithets can be subspecies, varieties, formas etc.
	SpeciesInfra string `json:"speciesInfra,omitempty"`

	// Author field creates a faceted search filter for Author name. This
	// field can be abbreviated up to one letter folloing period character.
	//
	// For example: `L.`, `Linn.`, `Linnaeus`.
	Author string `json:"author,omitempty"`

	// Year field creates a faceted search filter for a year.
	Year int `json:"year,omitempty"`

	// YearRange field creates a more flexible filter for year data.
	//
	// Example:
	// 1990-1995: year >= 1990 && year =< 1995
	// 1990-: year >= 1990
	// -1995: year <= 1995
	*YearRange `json:"yearRange,omitempty"`

	// Tail field keeps a non-parsed pard of a query, in case if full parsing
	// of query string did fail.
	Tail string `json:"unparsedTail,omitempty"`

	// Warnings field contains warnings generated by a parsing process.
	Warnings []string `json:"warnings,omitempty"`
}

Input contains data needed for creating a faceted search query by GNames.

func (Input) ToQuery added in v0.1.1

func (inp Input) ToQuery() string

ToQuery creates a query from the Input data.

type Meta added in v0.1.4

type Meta struct {
	Input       Input  `json:"input"`
	NamesNumber int    `json:"namesNumber"`
	Error       string `json:"error,omitempty"`
}

type Output added in v0.1.4

type Output struct {
	Meta  `json:"metadata"`
	Names []verifier.Name `json:"names,omitempty"`
}

type YearRange added in v0.1.3

type YearRange struct {
	// YearStart is the smaller year of the range.
	// YearEnd is the larger year of the range.
	YearStart, YearEnd int
}

YearRange field creates a more flexible filter for year data.

Example: 1990-1995: year >= 1990 && year =< 1995 1990-: year >= 1990 -1995: year <= 1995

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL