Percolate index

Percolate index is a special index which stores queries instead of documents. It is used for prospective searches (or "search in reverse").

The schema of a percolate index is fixed and contains the following fields:

Field Description
ID Unsigned 64-bit integer with autoincrement functionality therefore it can be omitted when you add a PQ rule
Query Full-text query of the rule. You can think of it as the value of a MATCH clause or JSON /search. If per field operators are used inside the query, the full text fields need to be declared in the percolate index configuration. If the stored query is supposed to do only attribute filtering (no full-text querying), the query value can be empty or simply omitted. The value of this field should correspond to the expected document schema which you specify when you create a percolate index
Filters Filters is an optional string containing attribute filters and/or expressions the same way they are defined in the WHERE clause or JSON filtering. The value of this field should correspond to the expected document schema which you specify when you create a percolate index
Tags Optional. Tags represent a list of string labels separated by comma that can be used for filtering/deleting PQ rules. The tags can be returned along with matching documents when you Percolate query

You don't need to worry about adding the above fields when you create a percolate index.

What you need to take care of when you add a new index is to specify the expected schema of a document which is to be checked against the rules you will add later. This is done the same way as for any other local index.

📋
Creating a percolate index via MySQL protocol:
create table products(title text, meta json) type='pq';
Response
Query OK, 0 rows affected (0.00 sec)

Template index

Template index is a pseudo-index since it does not store any data and does not create any files on your disk. At the same time it can have the same NLP settings as a plain or a real-time index. Template indexes can be used for few purposes:

  • as templates to inherit plain/real-time indexes in Plain mode just to minify Manticore configuration file
  • keywords generation with help of CALL KEYWORDS
  • highlighting of an arbitrary string using CALL SNIPPETS
CONFIG
📋
Creating a template index via a configuration file:
index template {
  type = template
  morphology = stem_en
  wordforms = wordforms.txt
  exceptions = exceptions.txt
  stopwords = stopwords.txt
}

NLP and tokenization