User Tools

Site Tools


Advanced Filtering

The Filter Field allows you to construct expressions that are used to perform advanced filtering operations. These expressions consist of five distinct elements:

  1. A Scope Selector, which [optionally] tells the application which column of data the filter should be evaluated against.
  2. A sequence of Scope Modifiers that are [optionally] used to modify the selected scope.
  3. A Syntax Selector, which [optionally] tells the application which Syntax Interpreter to use.
  4. A Syntax Modifier, which is [optionally] used to modify how the Syntax Interpreter is used.
  5. A Query Pattern, which represents the value or expression to match.

A properly constructed expression is formatted as1):

[1::[2::[2::]]][3::[4::]]5

Scope selectors, scope modifiers, syntax selectors and syntax modifiers each consist of predefined alphabetic character sequences followed by two colons; e.g. “abc::”. Which characters a query pattern consists of depends on which of the other elements in the expression are [or are not] declared.

Within any given expression, only one scope selector can be declared. Depending on the scope selected, an expression may also contain one or more scope modifiers, in sequence. When using a sequence of scope modifiers, the order in which they are declared makes a difference, so pay particular attention to it if you find yourself in that scenario.

As an example, consider an expression that matches the packages intended for use with DAZ Studio 4.5+ using the labels of all tags that are assigned to each respective package, irrespective of the preferences for active download display tags:

Scope Selector
  |
  |  Scope Modifier
  |    |
  |    |  Scope Modifier
  |    |    |
  |    |    |  Query Pattern
 _|_  _|_  _|_  _____|_______
/   \/   \/   \/             \
tag::all::lbl::DAZ Studio 4.5+

In the example above, we first select the Tag(s) scope. Then, we indicate that we want to use the All Tags modifier, as the default is to use only those that match the preferences for active display tags. We then refine the scope of our filter to use Tag Labels instead of the default which is tag values. Finally, we indicate that we only want tags labeled “DAZ Studio 4.5+”.

Notice that, in the example above, we did not declare a syntax selector or syntax modifier. It is important to understand that unless a syntax selector is declared, the default that will be used is equivalent to wc::*<something>*, where <something> represents the text to match, which is the syntax to define a Wildcard expression that matches packages that contain the text to match. Below we see the expression that is actually being used, in this case, to filter:

Scope Selector
  |
  |  Scope Modifier
  |    |
  |    |  Scope Modifier
  |    |    |
  |    |    |  Syntax Selector
  |    |    |   |
  |    |    |   |   Query Pattern
 _|_  _|_  _|_  |_  ______|_______
/   \/   \/   \/  \/              \
tag::all::lbl::wc::*DAZ Studio 4.5+*

Logical AND

When the parser that evaluates the text entered in the filter field encounters the character sequence && (space, ampersand, ampersand, space), the sequence is interpreted as a logical AND. If we apply this meaning to the sample expression tag::all::lbl::wc::*DAZ Studio 4.5+* && chk::on, the column of data being evaluated must match both tag::all::lbl::wc::*DAZ Studio 4.5+* AND chk::on (separately) before the record is not filtered from the view.


Scope Selectors

Scope selectors tell the application which column of data the filter should be evaluated against. If explicitly declared, scope selectors are always declared at the beginning of the expression.


Name

This is the default scope selector. It has no explicit keyword or character sequence. It is assumed if no other scope selector is declared. Use this selector to signify that the query pattern portion of the expression should be evaluated against the Product Name column of data for a package.

Scope Modifiers:

  • None

Syntax Selectors:

Query Pattern:


Checked State

Use the chk scope selector to signify that the query pattern portion of the expression should be evaluated against the Checked State of a package.

Scope Modifiers:

  • None

Syntax Selectors:

  • None

Query Pattern:

  • Use on, true, 1, yes or checked to display packages that are checked
  • Use off, false, 0, no or unchecked to display packages that are NOT checked

Examples:

  • chk::on
  • chk::off

SKU

Use the sku scope selector to signify that the query pattern portion of the expression should be evaluated against the Product ID / SKU of a package.

Scope Modifiers:

  • None

Syntax Selectors:

  • None

Query Pattern:

  • Use the # pattern to display packages for a single SKU
  • Use the #,# pattern to display packages for an explicit list of SKUs
  • Use the -# pattern to display packages with a SKU that is less than or equal to a specified SKU
  • Use the #- pattern to display packages with a SKU that is greater than or equal to a specified SKU
  • Use the #-# or [#,#] pattern to display packages for a range of SKUs
  • Use the #-#,#-# or [#,#],[#,#] or #,[#,#],#-# patterns to display packages for an explicit list of SKUs and/or SKU ranges

Examples:

  • sku::14812
  • sku::14812,13976,13439
  • sku::-15000
  • sku::15000-
  • sku::15000-15999
  • sku::[15000,15999]
  • sku::14812,13976,13439,15000-15999

Package(s)

Use the pkg scope selector to signify that the query pattern portion of the expression should be evaluated against the combined Product ID (SKU) and Package ID, separated by a hyphen, of a package.

Scope Modifiers:

  • None

Syntax Selectors:

Query Pattern:

Examples:

  • pkg::13176-3
  • pkg::wc::13176-*
  • pkg::rx::^(13176-1|13176-3)$

Order

Use the order scope selector to signify that the query pattern portion of the expression should be evaluated against an Order ID associated with your account. This number is the internal index of the order, as used in URLs 2), and not necessarily the Order # displayed on the page for an order.

Using the order::0 filter will cause the list of packages displayed to consist of only those packages which do not have an Order ID associated to them. This can be the result of having a package that was downloaded and/or installed with a version of Install Manager prior to version 1.0.1.36, or the result of manually downloading packages and placing them in the downloads folder. These packages will have an Order ID of “0” associated with them until/unless they are re-downloaded using a more recent version of the application.

Scope Modifiers:

  • None

Syntax Selectors:

  • None

Query Pattern:

  • Use the # pattern to display packages associated with a single order
  • Use the #,# pattern to display packages associated with an explicit list of orders
  • Use the -# pattern to display packages associated with an Order ID that is less than or equal to a specified Order ID
  • Use the #- pattern to display packages associated with an Order ID that is greater than or equal to a specified Order ID
  • Use the #-# or [#,#] pattern to display packages associated with a range of Order IDs
  • Use the #-#,#-# or [#,#],[#,#] or #,[#,#],#-# patterns to display packages associated with an explicit list of Order IDs and/or Order ID ranges

Examples:

  • order::0
  • order::12345
  • order::12345,12347,12349
  • order::-12345
  • order::12345-
  • order::12000-12345
  • order::[12000,12345]
  • order::12345,12347,12349,15000-15999

Date (Time)

Use the date scope selector to signify that the query pattern portion of the expression should be evaluated against a Date of a package/installation. If no scope modifier is declared, the default is Order Date.

Scope Modifiers:

Syntax Selectors:

  • None

Query Pattern:

# = ISO 8601 extended format datetime string; i.e. YYYY-MM-DD for dates or YYYY-MM-DDTHH:mm:ss, YYYY-MM-DDTHH:mm:ssTZD (e.g. 1997-07-16T19:20:30+01:00) for combined dates and times.

  • Use the # pattern to display packages for a single date(time)
  • Use the #,# pattern to display packages for an explicit list of dates(times)
  • Use the [#,#] pattern to display packages for a range between two dates(times)
  • Use the [#,#],[#,#] or #,[#,#],# patterns to display packages for an explicit list of dates(times) and/or date(time) ranges

An additional set of dynamic keywords, enclosed between a pair of % symbols, used in the place of the # symbol above, are also supported. When these keywords are used independently, a range starting at the beginning of the specified duration and stopping at the end of the specified duration is implicit. When used explicitly within a range, the value of the datetime that will be substituted for the keyword will be either the beginning or the end of the specified duration, based on its position in the range.

n = A zero-based numeric value indicating the offset, into the past, from the current datetime.

  • %n_DAYS%
  • %n_WEEKS%
  • %n_MONTHS%
  • %n_YEARS%

Examples:

  • date::[2013-01-01T00:00:01,2013-01-31T23:59:59]
  • date::instr::[%0_WEEKS%,%0_WEEKS%]

Size

Use the size scope selector to signify that the query pattern portion of the expression should be evaluated against a Size of a package/installation.

Scope Modifiers:

Syntax Selectors:

  • None

Query Pattern:

# = The size in bytes. Use of KB, MB, GB and TB are also supported.

  • Use the # pattern to display packages that are exactly a size
  • Use the #,# pattern to display packages for an explicit list of exact sizes
  • Use the -# pattern to display packages with a size that is less than or equal to a specified size
  • Use the #- pattern to display packages with a size that is greater than or equal to a specified size
  • Use the #-# or [#,#] pattern to display packages for a range of sizes
  • Use the #-#,#-# or [#,#],[#,#] or #,[#,#],#-# patterns to display packages for an explicit list of exact sizes and/or size ranges

Examples:

  • size::25MB
  • size::-25MB
  • size::25MB-
  • size::25MB-50MB
  • size::[25MB,50MB]

Type(s)

Use the type scope selector to signify that the query pattern portion of the expression should be evaluated against the Types assigned to a package.

Scope Modifiers:

  • None

Syntax Selectors:

Query Pattern:

Examples:

  • type::Software
  • type::Plugin
  • type::Content
  • type::,
  • type::wc::*Plugin*
  • type::rx::^Software.*Content.*$
  • type::rx::ci::^((?!.*(plugin)).*)$

Tag(s)

Use the tag scope selector to signify that the query pattern portion of the expression should be evaluated against the Tags assigned to a package.

Scope Modifiers:

Syntax Selectors:

Query Pattern:

Examples:

  • tag::all::DAZStudio4_5
    • tag::all::lbl::DAZ Studio 4.5+
  • tag::all::DAZStudio4
    • tag::all::lbl::DAZ Studio 4
  • tag::all::DAZStudio3
    • tag::all::lbl::DAZ Studio 3
  • tag::all::DAZStudioLegacy
    • tag::all::lbl::DAZ Studio (< 3)
  • tag::all::DSON_Poser
    • tag::all::lbl::DSON Importer for Poser
  • tag::all::Poser9
    • tag::all::lbl::Poser 9+
  • tag::all::PoserLegacy
    • tag::all::lbl::Poser (< 9)
  • tag::all::lbl::wc::DAZ Studio*
  • tag::all::lbl::wc::Poser*
  • tag::all::lbl::Poser
  • tag::all::,
  • tag::all::rx::ci::^((?!.*(Poser)).*)$

Metadata

Use the meta scope selector to signify that the query pattern portion of the expression should be evaluated against whether the package contains Metadata. Use of this scope selector will only produce results in the Installed Page.

Scope Modifiers:

  • None

Syntax Selectors:

  • None

Query Pattern:

  • Use on, true, 1, yes or checked to display packages that are checked
  • Use off, false, 0, no or unchecked to display packages that are NOT checked

Examples:

  • meta::true
  • meta::false

Account

Use the acct scope selector to signify that the query pattern portion of the expression should be evaluated against the Account that the package was Installed By. Use of this scope selector will only produce results in the Installed Page.

Scope Modifiers:

  • None

Syntax Selectors:

Query Pattern:

Examples:

  • acct::rx::ci::^r
  • acct::wc::*@daz3d.com

Path

Use the path scope selector to signify that the query pattern portion of the expression should be evaluated against the Path that the package was Installed To. Use of this scope selector will only produce results in the Installed Page.

Scope Modifiers:

  • None

Syntax Selectors:

Query Pattern:

Examples:

  • path::D:/
  • path::rx::ci::^((?!.*(Public)).*)$

File

Use the file scope selector to signify that the query pattern portion of the expression should be evaluated against relative file paths defined in the manifest of installed packages. Use of this scope selector will only produce results in the Installed Page.

Important: This filter can be very time intensive. The more packages you have, and the larger those packages are, the greater the amount of time this filter can take to produce results. To increase performance, a package is considered to be a match for the expression once the first match is found.

Scope Modifiers:

  • None

Syntax Selectors:

Query Pattern:

Examples:

  • file::rx::ci::^.+\.obj$
  • file::rx::ci::^.+\.fbx$
  • file::rx::ci::^.+\.bvh$
  • file::rx::ci::^.+\.mdl$
  • file::rx::ci::^.+\.s(l|dl)$
  • file::rx::ci::^.+\.d(uf|sf)$
  • file::rx::ci::^.+\.ds(a|b|e|)$
  • file::rx::ci::^.+\.d(az|s(o|d|v))$
  • file::rx::ci::^.+\.d(cm|b(m|c|l))$
  • file::rx::ci::^.+\.(pz(3|z)|(cr|pz|fc|hr|hd|pp|lt|cm)(2|z)|mc(6|z))$
  • file::rx::ci::^.+\.(obp|br\d)$
  • file::rx::ci::^.+\.(h|cpp)$

Store

Use the store scope selector to signify that the query pattern portion of the expression should be evaluated against whether packages can be validated against product and order history data retrieved from the store. While use of this scope selector will only produce the proper results when you are signed into an account (it must retrieve product and order history data for that account) the comparison of that data is performed on the local machine.

Scope Modifiers:

  • None

Syntax Selectors:

  • None

Query Pattern:

  • Use on, true, 1, yes or checked to display packages that can be validated against current product data
  • Use off, false, 0, no or unchecked to display packages that can NOT be validated against current product data

Examples:

  • store::yes
  • store::no

Resume

Use the resume scope selector to signify that the query pattern portion of the expression should be evaluated against whether packages have been partially downloaded and can be resumed. Use of this scope selector will only produce results in the Ready to Download Page.

Scope Modifiers:

  • None

Syntax Selectors:

  • None

Query Pattern:

  • Use on, true, 1, yes or checked to display packages that can be validated against current product data
  • Use off, false, 0, no or unchecked to display packages that can NOT be validated against current product data

Examples:

  • resume::yes
  • resume::no

Custom

Use the custom scope selector to signify that the query pattern portion of the expression should be evaluated against whether or not packages use a custom source prefix for package naming. Use of this scope selector will only produce results in the Ready to Install Page or Installed Page.

Scope Modifiers:

  • None

Syntax Selectors:

  • None

Query Pattern:

  • Use on, true, 1, yes or checked to display packages that use a custom source prefix
  • Use off, false, 0, no or unchecked to display packages that do NOT use a custom source prefix

Examples:

  • custom::yes
  • custom::no

Scope Modifiers

Scope modifiers are used to modify the selected scope. If declared at all, scope modifiers are always declared immediately following a Scope Selector, or in some cases another scope modifier.


Installer

Use the instr scope modifier to signify that the query pattern portion of the expression should be evaluated against the Installer

Scope Modifiers:

  • None

Installed

Use the instd scope modifier to signify that the query pattern portion of the expression should be evaluated against the Installed

Scope Modifiers:

  • None

All Tags

Use the all scope modifier to signify that the query pattern portion of the expression should be evaluated against all tags assigned to a package, not just the tags that match the currently active ones.

Scope Modifiers:


Tag Labels

Use the lbl scope modifier to signify that the query pattern portion of the expression should be evaluated against tag labels3) instead of tag values

Scope Modifiers:

  • None

Syntax Selectors

Syntax selectors tell the application which Syntax Interpreter to use. If declared explicitly, syntax selectors are always declared immediately following any Scope Modifiers or in the event that no scope modifiers are declared, immediately following a Scope Selector. If neither are declared, a syntax selector can be declared at the beginning of the expression.


Wildcard

Use the wc syntax selector to signify that the query pattern portion of the expression should be interpreted as Wildcard syntax. In the Wildcard syntax, all characters represent themselves except for those that are specified below.

  • ? - Matches any single character; the same as “.” in a regular expression
  • * - Matches zero or more of any characters; the same as “.*” in a regular expression
  • [] - Sets of characters can be represented in square brackets; similar to a regular expression.

Syntax Modifiers:

  • None

Regular Expression

Use the rx syntax selector to signify that the query pattern portion of the expression should be interpreted as Regular Expression syntax; a rich Perl-like pattern matching syntax with greedy quantifiers. See www.regular-expressions.info for more information on regular expression.

Syntax Modifiers:


Syntax Modifiers

Case Insensitive

By default, regular expressions are case sensitive. Use the ci syntax modifier to signify that the regular expression should be evaluated as being case insensitive; that is, where both uppercase and lowercase characters should be matched regardless of the case used in the expression.


Query Pattern

1)
[ ] = Optional
3)
the text displayed within the UI