前提條件

  • 已初始化Client。具體操作,請參見初始化
  • 已建立資料表,且資料表的資料生命週期(timeToLive)必須為-1,最大版本數(maxVersions)必須為1。

參數

更多資訊,請參見建立多元索引

樣本

  1. 建立多元索引時指定虛擬列。
    建立一個多元索引,多元索引包含Col_Keyword和Col_Long兩列,同時建立虛擬列Col_Keyword_Virtual_Long和Col_Long_Virtual_Keyword。Col_Keyword_Virtual_Long映射為資料表中Col_Keyword列,虛擬列Col_Long_Virtual_Keyword映射為資料表中Col_Long列。
    private static void createSearchIndex(SyncClient client) {
        CreateSearchIndexRequest request = new CreateSearchIndexRequest();
        request.setTableName(tableName); //設定資料表名稱。
        request.setIndexName(indexName); //設定多元索引名稱。
        IndexSchema indexSchema = new IndexSchema();
        indexSchema.setFieldSchemas(Arrays.asList(
            new FieldSchema("Col_Keyword", FieldType.KEYWORD) //設定欄位名和類型。
                .setIndex(true) //設定開啟索引。
                .setEnableSortAndAgg(true) //設定開啟排序和統計功能。
                .setStore(true),
            new FieldSchema("Col_Keyword_Virtual_Long", FieldType.LONG) //設定欄位名和類型。
                .setIndex(true)
                .setEnableSortAndAgg(true)
                .setStore(true)
                .setVirtualField(true) //設定欄位是否為虛擬列。
                .setSourceFieldName("Col_Keyword"), //虛擬列對應的資料表中欄位。
            new FieldSchema("Col_Long", FieldType.LONG)
                .setIndex(true)
                .setEnableSortAndAgg(true)
                .setStore(true),
            new FieldSchema("Col_Long_Virtual_Keyword", FieldType.KEYWORD)
                .setIndex(true)
                .setEnableSortAndAgg(true)
                .setStore(true)
                .setVirtualField(true)
                .setSourceFieldName("Col_Long")));
        request.setIndexSchema(indexSchema);
        client.createSearchIndex(request); //調用client建立多元索引。
    }