All Products
Search
Document Center

Lindorm:Search index limitations

Last Updated:Mar 28, 2026

Search indexes in Lindorm wide tables have the following limitations.

Supported data types

Search index columns support these data types: BOOLEAN, BYTE, SHORT, INT, LONG, FLOAT, DOUBLE, STRING, CHAR, BINARY, TIMESTAMP, and JSON.

Important

TIMESTAMP and JSON are supported only in Lindorm 2.6.5 and later. For version information and upgrade instructions, see Release notes of LindormTable and Minor version update.

STRING length limit

The maximum length for a STRING value is 8,191 characters:

TokenizationLimit applies to
DisabledThe full STRING value
EnabledEach resulting term

If a value exceeds this limit — either as the original string or as a tokenized term — the column value is excluded from the search index.

For more information about tokenization, see Tokenization queries.

Number of search indexes per table

By default, each wide table supports one search index. To create multiple search indexes on the same table, see Multiple search indexes for a single table (Public Preview).

Time to Live (TTL)

TTL behavior for search indexes depends on whether the base table has a TTL configured at the time the search index is created:

Base table TTL at creationSearch index behavior
ConfiguredInherits the base table's TTL upon creation
Not configuredAdopts the base table's TTL the first time you set a TTL on the base table

In both cases, subsequent changes to the base table's TTL do not affect the search index's TTL. To modify the TTL of a search index separately, contact Lindorm technical support (DingTalk ID: s0s3eg3).

TTL expiration is enforced by a background process, so expired data may persist for a short time after its TTL expires.

Multiple data versions

Search indexes do not support multiple versions for data in index key columns.

Custom timestamps

By default, Lindorm generates a timestamp in milliseconds for each row of data, which serves as the data version.

Important

Before writing data with custom timestamps to a wide table that has a search index, set the table's MUTABILITY attribute to MUTABLE_ALL.

To set the MUTABILITY attribute:

  • HBase Shell:

    ALTER 'testTable', MUTABILITY=> 'MUTABLE_ALL'
  • Lindorm SQL:

    ALTER TABLE testTable SET 'MUTABILITY' = 'MUTABLE_ALL';
Note

The default value of MUTABILITY is MUTABLE_LATEST. For details on mutability types, see Key concepts.

After setting MUTABILITY to MUTABLE_ALL, specify a custom timestamp when writing data:

  • HBase client:

    public Put(byte[] row, long ts)
    public Put addColumn(byte[] family, byte[] qualifier, long ts, byte[] value)
  • Lindorm SQL:

    UPSERT INTO testTable (pk, c1, c2, _l_ts_) VALUES ('1', '2', '3', 1640966400000);

The methods available for specifying custom timestamps vary by client.

If you encounter any issues, submit a ticket.