Fts3

@Target(allowedTargets = [AnnotationTarget.CLASS])
@Retention(value = AnnotationRetention.BINARY)
@RequiresApi(value = 16)
public annotation Fts3


Marks an Entity annotated class as a FTS3 entity. This class will have a mapping SQLite FTS3 table in the database.

FTS3 and FTS4 are SQLite virtual table modules that allows full-text searches to be performed on a set of documents.

An FTS entity table always has a column named rowid that is the equivalent of an INTEGER PRIMARY KEY index. Therefore, an FTS entity can only have a single field annotated with PrimaryKey, it must be named rowid and must be of INTEGER affinity. The field can be optionally omitted in the class but can still be used in queries.

All fields in an FTS entity are of TEXT affinity, except the for the 'rowid' field.

Example:

@Entity
@Fts3
data class Mail (
@PrimaryKey
@ColumnInfo(name = "rowid")
val rowId: Int,
val subject: String,
val body: String
)

Summary

Public constructors

Fts3(@NonNull String tokenizer, @NonNull String[] tokenizerArgs)

Public methods

final @NonNull String

The tokenizer to be used in the FTS table.

final @NonNull String[]

Optional arguments to configure the defined tokenizer.

Public constructors

Fts3

public Fts3(@NonNull String tokenizer, @NonNull String[] tokenizerArgs)

Public methods

getTokenizer

public final @NonNull String getTokenizer()

The tokenizer to be used in the FTS table.

The default value is FtsOptions.TOKENIZER_SIMPLE. Tokenizer arguments can be defined with tokenizerArgs.

If a custom tokenizer is used, the tokenizer and its arguments are not verified at compile time.

See SQLite tokenizers documentation for more details.

Returns
@NonNull String

The tokenizer to use on the FTS table. Built-in available tokenizers are FtsOptions.TOKENIZER_SIMPLE, FtsOptions.TOKENIZER_PORTER and FtsOptions.TOKENIZER_UNICODE61.

See also
tokenizerArgs

getTokenizerArgs

public final @NonNull String[] getTokenizerArgs()

Optional arguments to configure the defined tokenizer.

Tokenizer arguments consist of an argument name, followed by an "=" character, followed by the option value. For example, separators=. defines the dot character as an additional separator when using the {@link FtsOptions#TOKENIZER_UNICODE61} tokenizer.

The available arguments that can be defined depend on the tokenizer defined, see the [SQLite tokernizers documentation](https://www.sqlite.org/fts3.html#tokenizer) for details.

Returns
@NonNull String[]

A list of tokenizer arguments strings.