Query syntax guide

By default, queries are treated as plain text. Multiple terms are combined as a conjunction (all terms must match) and the query is automatically expanded to improve recall. For example, smartcard java requires both terms to appear, but documents where they appear together as the exact phrase "smartcard java" are ranked higher. If no documents match the original terms, the query falls back to prefix matching, so smart can also match smartcard.

The text search fields also support an advanced query syntax described below. As soon as any advanced operator is used, the query is passed to the search engine as-is, without any automatic expansion or boosting.


Boolean operators

Use AND, OR to combine terms explicitly. AND takes precedence over OR.

smartcard AND java
TPM OR firmware
(card OR smartcard) AND java

Required and excluded terms

Prefix a term with + to require it or - to exclude it from results. These can be mixed freely. The + and - operators are sufficient on their own to express any boolean query. For instance, x AND y OR z can equivalently be written as (+x +y) z.

+secure -network
+smartcard +java -applet

Phrase search

Wrap terms in double quotes to require them to appear as an exact consecutive sequence.

"secure network"

Phrase slop

Append ~N to a phrase to allow up to N extra words between the quoted terms. For example, "hardware module"~1 matches "hardware security module".

"hardware module"~1
"red linux"~2

Phrase prefix

Append * (outside the quotes) to treat the last term in a phrase as a prefix — matches any word that starts with it.

"network access con"*

Field targeting

Each search input already targets its own field. Field prefixes are only needed if you want to cross-reference multiple fields from a single box. Or when you need OR between two fileds, since the filters on the search form are combined with AND.

Either the query starts with a prefixed field, or the terms are joined with AND or OR. name:foo keystore and keystore AND name:foo both work, keystore name:foo does not.

Every scheme is indexed separately, so the available fields differ between Common Criteria (CC), FIPS 140, Protection Profiles (PP) and EUCC. If you try to use a field which is not available for the current scheme, the query will result into an error.

Field Type Schemes Values
name text CC, FIPS, PP, EUCC Certificate or module name.
cert_id text CC, EUCC The complete certificate ID, matched as a whole, e.g. cert_id:ANSSI-CC-2023/12.
cert_id_tokenized text CC, EUCC The same ID split into words, so parts of it can be matched on their own, e.g. cert_id_tokenized:ANSSI
cert_id number FIPS The numeric module ID, e.g. 4523.
manufacturer text CC Certified product's manufacturer.
vendor text FIPS Module's vendor — the FIPS equivalent of manufacturer.
cert_lab text CC Evaluation laboratory.
scheme text CC, PP, EUCC Two-letter country code of the certification scheme, e.g. DE, FR, NL.
category text CC, PP The whole category name. Quote it if it has more words: category:"Data Protection".
category text FIPS Module type: Hardware, Software, Firmware, Hybrid, Software-Hybrid, Firmware-Hybrid.
eal text CC, EUCC EAL1 to EAL7, optionally augmented: EAL4+.
level text FIPS Security level as a plain number, matching the Level filter on the search form.
status text CC, PP, EUCC active, archived.
status text FIPS active, historical, revoked.
not_valid_before, not_valid_after date CC, PP, EUCC Certification and archival dates (RFC 3339).
validation_date, sunset_date date FIPS Validation and sunset dates (RFC 3339).
body_cert, body_report, body_target text CC, EUCC Full text of the certificate, evaluation report and security target.
body_report, body_profile text PP Full text of the evaluation report and the protection profile.
body text FIPS Full text of the security policy.
manufacturer:qualcomm
manufacturer:apple AND cert_id_tokenized:ANSSI
scheme:DE AND eal:EAL4+
scheme:DE OR eal:EAL4+
status:active AND vendor:cisco
category:"Data Protection" AND body_target:keystore
not_valid_before:[2020-01-01T00:00:00Z TO 2023-01-01T00:00:00Z}

Set terms

Match a field against a set of values using the IN operator. This is more efficient than writing multiple OR clauses.

IN [Apple Qualcomm Samsung]

Range search

Specify an inclusive ([, ]) or exclusive ({, }) range with TO between bounds. Works on text fields (lexicographic order) and date fields (RFC 3339).

not_valid_before:[2020-01-01T00:00:00Z TO 2023-01-01T00:00:00Z}
[a TO m}

Regular expressions

Wrap a pattern in forward slashes to use a regex. The regex is matched against individual tokens, not the full field value.

/qual.*/

Boost

Append ^N to a term or phrase to multiply its relevance score. Higher boost values make a match rank higher. Negative boosts are not allowed.

"TPM"^3 OR smartcard
"secure element"^2 OR "security module"