Fts4

public abstract @interface Fts4
implements Annotation

androidx.room.Fts4


Marks an Entity annotated class as a FTS4 entity. This class will have a mapping SQLite FTS4 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' and 'languageid' fields.

Example:

 @Entity
 @Fts4
 public class Mail {
   @PrimaryKey
   @ColumnInfo(name = "rowid")
   private final int rowId;
   private final String subject;
   private final String body;

   public Mail(int rowId, String subject, String body) {
       this.rowId = rowId;
       this.subject = subject;
       this.body = body;
   }

   public String getRowId() {
       return rowId;
   }
   public String getSubject() {
       return subject;
   }
   public void getBody() {
       return body;
   }
 }
 

Summary

Public methods

Class<?> contentEntity()

The external content entity who's mapping table will be used as content for the FTS table.

String languageId()

The column name to be used as 'languageid'.

FtsOptions.MatchInfo matchInfo()

The FTS version used to store text matching information.

String[] notIndexed()

The list of column names on the FTS table that won't be indexed.

FtsOptions.Order order()

The preferred 'rowid' order of the FTS table.

int[] prefix()

The list of prefix sizes to index.

String tokenizer()

The tokenizer to be used in the FTS table.

String[] tokenizerArgs()

Optional arguments to configure the defined tokenizer.

Inherited methods

Public methods

contentEntity