Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Excerpt

The query syntax can be used in Squirro to search for items.

Table of Contents

Table of Contents
maxLevel2
outlinetrue
excludeTable of Contents

Introduction

By default, title and body fields are taken into account when searching. Facets can be configured to also be searchable.
By default, the terms entered are AND combined.

...

The following restrictions apply:

  • The + or required operator requires that the term after the + symbol exist somewhere.

  • The - or prohibit operator excludes documents that contain the term after the - symbol.

Example Queries

Query

Description

squirro AND memonic

Search documents that contain squirro and memonic.

squirro OR memonic

Search documents that contain either squirro or memonic.

+memonic -squirro

Search documents that contain memonic but do not contain squirro.

squirro NOT memonic

Search documents that contain squirro but do not contain memonic.

Grouping

Use round brackets / parentheses for grouping.

Example Queries

Query

Description

(java AND solr) OR (python AND elasticsearch)

Search documents that contain both java and solar, or documents that contain both python and elasticsearch.

nektoon AND (squirro OR memonic)

Search documents that contain nektoon and either squirro or memonic.

Phrase Search

Use double quotes at the beginning and ending of a phrase to perform a phrase search. Phrases must match exactly (i.e. no stemming is applied within a phrase). You can also add a slop to the phrase with a tilde ~ at the end of the phrase to do a proximity search.

Example Queries

Query

Description

"oracle financial services"

Find documents where oracle, financial and services match in exact this order and within three terms.

"oracle financial leasing"~3

Find documents where oracle, financial and leasing must match but allow for up to 3 additional terms between them. The order of the terms is no longer strict, but swapping two words is equivalent to adding two words in terms of edit distance.

Wildcard Search

Use * and ? to perform a wildcard search. Multiple character wildcard searches look for 0 or more characters and the single character wildcard search looks for terms that match that with the single character replaced. Wildcard search can also apply per field. Leading wildcards are allowed, but note that they can be very slow and potentially timeout within Elasticsearch. In order to prevent extremely slow wildcard queries, a wildcard term should not start with one of the wildcards * or ?

Example Queries

Query

Description

squirr*

Search documents that contain e.g. for squirro and squirrel.

*emonic

Search documents that contain e.g. for memonic and mnemonic.

te?t

Search documents that contain e.g. for test and text.

name:*

Search documents that have e.g. the field "name" 1

-name:*

Search documents that do not have e.g. the field "name" 1

name:squir*

Search documents that contain the "name" field started by "squir", e.g. name:squirro and name:squirrel. 1

1 Note that facet names containing spaces need to be put inside quotes in queries

...

Only search in specific fields

Query

Description

$title:France

Search documents that have the term France in the title

$body:France

Search documents that have the term France in the document body

$item_id:PgnAQM1FTSCP1uNOesoE7Q

Search for a specific document by id

$item_created_at >= "2015-02-01T00:00:00"

Search documents created after Feb. 2, 2015

$item_created_at <= "2015-02-01T00:00:00"

Search documents created before Feb. 2, 2015

$item_created_at >= "now-7d/d"

Search documents created in the last 7 days
(see Elasticsearch documentation)

$_size > 100000

Search documents with size > 100'000 bytes

Facet Search

Use any document facet to restrict the search.

Query

Description

Country:France

Search documents that have a facet named Country with a value France

Country:"United Kingdom"

Search documents that have a facet named Country with a value United Kingdom

"Mixed Sentiment":Yes 1

Search documents that have a facet named Mixed Sentiment with a value Yes

1 Note that facet names containing spaces need to be put inside quotes in queries

Note: this search is case sensitive

Boosting

Individual elements of a query can be prioritized by boosting them. Note that sorting needs to be by relevance to notice the changed relevance scores.

Query

Description

France^10 Europe

Search for France and Europe, but boost matches of “France”.

France OR Country:France^10

Search for France in full text, as well as the “Country” facet and boost items that have the value defined in the country facet.

France^0.1 Europe

Search for France and Europe, but de-prioritize matches of “France” (the default boost is 1.0).

Sorting

You can use the following query syntax to sort the result:

Code Block
sort:<field_name>[:<order>]

Where <field_name> is either 'date' (default) or 'relevance' or any item field name you want to sort by and <order> is either 'asc' for ascending or 'desc' for descending. The order suffix is optional, the default order is descending.2

Additionally, you can add a second (or third etc) sorting criteria by adding

Code Block
[;<2nd_sort_field>[:<2nd_order>]]

to the query syntax.

2 Note: The square brackets above mean that those fields are optional. Those brackets are not part of the syntax.

Example Queries

Query

Description

sort:date

Sort by date (descending order by default)

sort:date:asc

Sort by date in ascending order

sort:relevance:desc

Sort by relevance in descending order

sort:my_sortable_facet:desc;date:desc

Sort by "my_sortable_facet" in descending order; additionally add a second sorting by descending date

(Moon landing) sort:date

Sort query by date (default order is descending)

Time Increment

It is possible to control the time increments shown in the main timeline and in the dashboard widgets. To do so, add time_increment:<value> to a query.

Here is the Bugzilla Project without a time_increment set:Image Removed

...

The same query, with time_increment:yearImage Removed

...

Possible values are:

...

Note

There is a performance impact when using a time increment that results in many individual increments. This impact is both in the user interface, where each increment needs to be drawn, as well as on the Elasticsearch level, where they need to be calculated. So use the time_increment setting carefully.

Entity Search

Query syntax to search for items having entities satisfied some criteria:

No Formatcode
entity:{< any query to match a single entity document >}

Example:

  • Search for Items containing a specific Entity of type company:

    No Formatcode
    entity:{type:company AND name:"Thomson Reuters"}
  • Search for Items containing at least one company-typed Entity "Thomson Reuters" and another one Entity "Squirro":

    No Formatcode
    entity:{type:company AND name:"Thomson Reuters"} AND entity:{type:company AND name:Squirro}
    
  • Search for Items containing a specific Entity of type company with a confidence higher than 80%:

    No Formatcode
    entity:{type:company AND name:"Thomson Reuters" AND confidence > 0.8}
  • Search for Items containing any Entity of type company with confidence higher than 70%:

    No Formatcode
    entity:{type:company AND NOT confidence < 0.7}
  • Search for Items containing no Entity of type company with confidence higher or equal than 20%:

    No Formatcode
    entity:{type:company AND confidence < 0.2}
    
  • Search for Items containing any Entity of type deal with at least a 70% confidence:

    No Formatcode
    entity:{type:deal AND confidence > 0.7}
  • Search for Items containing a specific Entity of type deal:

    No Formatcode
    entity:{type:deal AND properties.size:100 AND properties.region:US AND properties.industry:Tech AND properties.target:Whatsapp AND properties.acquirer:Facebook}
    
  • Search for Items containing one Entity with target Squirro and another Entity with target Whatsapp:

    No Formatcode
    entity:{type:deal AND properties.target:Squirro AND properties.industry:Tech} AND entity:{type:deal AND properties.target:Whatsapp AND properties.industry:Tech}
  • Search for Items containing an Entity of type deal with a property size bigger than 100:

    No Formatcode
    entity:{type:deal AND properties.size > 100}

...

Starred items are items marked as favourite / bookmarked items.

[topic] ..

.

# For caching reasons the read/starred flags aggregations are now disabled # by default. You can enable it by configuring a project id here. # Mulitple ids can be provided by comman separating them. enable

For this set the enable_flags_for_project_ids

=

property in topic.ini. Please refer to that documentation page for details.

Infonote

Note: You need to enable flags for your project(s) before you are able to query for starred and read items.

In topic.ini:

No Format

Query syntax for (un)starred items and (un)read items:

No Formatcode
is:starred
is:unstarred
is:read
is:unread

...