All Products
Search
Document Center

Lindorm:Limits on search indexes

Last Updated:Feb 27, 2026

This topic describes the limits that are imposed by Lindorm on search indexes.

The following limits are imposed on search indexes:

  • Data types

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

    Important

    The JSON and TIMESTAMP data types are supported only in Lindorm 2.6.5 and later versions. For more information about how to view and upgrade the LindormTable version, see Release notes of LindormTable and Minor version update.

  • Number of indexes
    By default, you can create only one search index for a wide table. To create multiple search indexes, see Multiple search indexes for a single table (public preview).

  • Time-to-live (TTL)

    • If the primary table has a TTL configured, the search index inherits the same TTL when created. Subsequent changes to the primary table's TTL do not affect the search index's TTL.

    • If the primary table does not have a TTL configured, the first time you configure a TTL for the primary table, the search index's TTL is updated to match. Subsequent changes to the primary table's TTL do not affect the search index's TTL.

    To change only the search index's TTL, contact Lindorm technical support at DingTalk ID: s0s3eg3.

    Search index TTL is enforced by periodically cleaning up expired data. The TTL is not guaranteed to take effect with real-time precision.

  • 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. This timestamp is equivalent to a data version. If you specify a custom timestamp when you write a row of data, the server uses the timestamp of the application for the data row that is written. The methods that can be used to specify custom timestamps vary based on clients.

    • The HBase client uses the following interface to implement custom timestamps.

      public Put(byte[] row, long ts)
      public Put addColumn(byte[] family, byte[] qualifier, long ts, byte[] value)
    • Lindorm SQL clients use the following statement to implement custom timestamps:

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

    If a search index is created for a Lindorm wide table and you want to use a custom timestamp for your data, you must modify the MUTABILITY attribute of the table before you write data to the wide table. You can execute one of the following statements to modify the MUTABILITY attribute:

    • You can use HBase Shell to modify table properties.

      ALTER 'testTable', MUTABILITY=> 'MUTABLE_ALL'
    • You can use Lindorm SQL to modify table properties.

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

    The default value of the MUTABILITY property is MUTABLE_LATEST. For more information about mutability classifications, see Terms.

If you encounter any issues, or submit a ticket.