前提條件
- 已初始化Client。具體操作,請參見初始化。
- 已建立資料表,且資料表的資料生命週期(timeToLive)必須為-1,最大版本數(maxVersions)必須為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建立多元索引。 }