Searching#

Introduction#

Fuze supports a full featured search engine. A query language, Fuze Query Language (FQL), is utilized to perform a search. FQL is described below.

Fuze Query Language (FQL)#

FQL is an intuitive and full featured language for searching Fuze. FQL defines the commands that must be included with the --search option.

The basic structure of FQL is shown below.

fuze --search "< <keyword> <operator> <search_term> >"

The sections below describe the keywords, operators, and search terms in FQL.

Operators#

The following are the supported operators in FQL (note that not all operators are supported for all keywords):

Basic FQL Operators#

Operator

Operation

Comments

<

Less Than

<>

Between

Searches between the first value and second value

=

Equality

Equality requires the full value.

>

Greater Than

^

Begins With

~

Contains

Other FQL Symbols#

Symbol

Meaning

Comments


Less Than

Delimiter between operations

Compound Statement

Delimiter between statements

Contains FQL

FQL statements are contained with “”

Keyword: fuzeid#

  • Operators: =

  • Search Term: A FuzeID’s (note that the FuzeID must be the full value. Partial FuzeID searches are not supported)

  • Return: All metadata associated with the FuzeID(s)

Keyword: product#

  • Operators: = <> ^ ~ > <

  • Search Term: 1 or more text snippets

  • Return: Set of FuzeIDs

Keyword: type#

Presently only the “build” type is supported

  • Operators: = <> ^ ~ > <

  • Search Term: “type” is one or more of:

    • build

  • Return: Set of FuzeIDs

Keyword: username#

  • Operators: = <> ^ ~ > <

  • Search Term: 1 or more text snippets

  • Return: Set of FuzeIDs

Keyword: date#

  • Operators: = <> ^ ~ > <

  • Search Term: Date in format: YYYY/MM/DD

  • Return: Set of FuzeIDs

Keyword: version#

  • Operators: = <> ^ ~ > <

  • Search Term: 1 or more text snippets

  • Return: Set of FuzeIDs

Keyword: commitid#

  • Operators: = ^ ~

  • Search Term: 1 or more text snippets

  • Return: Set of FuzeIDs

Keyword: stage#

  • Operators: = ^ ~

  • Search Term: 1 or more text snippets

  • Return: Set of FuzeIDs

Examples#

Single FuzeID search:

fuze --search "fuzeid = 190111-131-9962"

Search for FuzeIDs that are either firmware or firmware-v3 products:

fuze --search "product ^ firmware"

Search for FuzeIDs that are released versions of products that contain the word “firmware”:

fuze --search "release ~ firmware"

Search for FuzeIDs that were created by all usernames that contain ‘lastname’:

fuze --search "username ~ lastname"

Search for FuzeIDs from the first 7 days of January 2019:

fuze --search "date <> 2019/01/01 | 2019/1/7"

Search for FuzeIDs after Jan 1, 2019:

fuze --search "date > 2019/01/01"

Compound FQL Statements#

FQL allows you to create compound statements to further refine your search. Use the , delimiter to separate search terms in the FQL statement.

Examples#

Search for FuzeIDs associated with released firmware after Jan 1, 2019

fuze --search "release = firmware, date > 2019/1/1"

Search for FuzeIDs associated with firmware builds between Jan 1, 2019 and Jan 3, 2019

fuze --search "product = firmware, date <> 2019/1/1 | 2019/1/3"

Search for FuzeIDs associated with builds by user first.last between Jan 1, 2019 and Jan 3, 2019

fuze --search "username = first.last@company.com, date <> 2019/1/1 | 2019/1/3"

FQL Search Results#

Results are delivered in the user-specified format. Presently, that is either json or csv. If json is specified, the results are delivered to stdout. If csv is specified, the results are in the produced csv file.