This is an automated email from the ASF dual-hosted git repository.

yiguolei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new 3a00c2abef5 [feature](index) Replace BITMAP INDEX with INVERTED INDEX 
(#30950)
3a00c2abef5 is described below

commit 3a00c2abef564fd0fc8a51ab559e336964618b84
Author: Kang <kxiao.ti...@gmail.com>
AuthorDate: Thu Feb 8 22:33:13 2024 +0800

    [feature](index) Replace BITMAP INDEX with INVERTED INDEX (#30950)
---
 .../community/design/doris_storage_optimization.md |  6 +-
 docs/en/docs/admin-manual/query-profile.md         |  8 +-
 docs/en/docs/advanced/alter-table/schema-change.md |  3 +-
 docs/en/docs/advanced/cold-hot-separation.md       |  1 -
 docs/en/docs/data-table/best-practice.md           |  3 +-
 docs/en/docs/data-table/index/bitmap-index.md      | 83 ---------------------
 docs/en/docs/data-table/index/bloomfilter.md       |  2 +-
 docs/en/docs/data-table/index/index-overview.md    |  2 +-
 docs/en/docs/data-table/index/inverted-index.md    |  4 +-
 .../data-table/index/ngram-bloomfilter-index.md    |  2 +-
 .../Alter/ALTER-TABLE-BITMAP.md                    | 86 ---------------------
 .../Create/CREATE-INDEX.md                         |  9 +--
 .../Create/CREATE-TABLE.md                         | 10 +--
 .../Data-Definition-Statements/Drop/DROP-INDEX.md  |  2 +-
 .../sql-reference/Show-Statements/SHOW-INDEX.md    |  2 +-
 docs/sidebars.json                                 |  4 +-
 .../docs/advanced/alter-table/schema-change.md     |  3 +-
 docs/zh-CN/docs/advanced/cold-hot-separation.md    |  1 -
 docs/zh-CN/docs/data-table/best-practice.md        |  3 +-
 docs/zh-CN/docs/data-table/index/bitmap-index.md   | 85 ---------------------
 docs/zh-CN/docs/data-table/index/bloomfilter.md    |  2 +-
 docs/zh-CN/docs/data-table/index/index-overview.md |  2 +-
 docs/zh-CN/docs/data-table/index/inverted-index.md |  4 +-
 .../data-table/index/ngram-bloomfilter-index.md    |  2 +-
 .../Alter/ALTER-TABLE-BITMAP.md                    | 87 ----------------------
 .../Create/CREATE-INDEX.md                         |  9 +--
 .../Create/CREATE-TABLE.md                         | 10 +--
 fe/fe-core/src/main/cup/sql_parser.cup             |  2 +-
 .../java/org/apache/doris/analysis/IndexDef.java   | 24 ++----
 .../doris/nereids/parser/LogicalPlanBuilder.java   |  4 +
 .../trees/plans/commands/info/IndexDefinition.java | 25 ++-----
 .../doris/analysis/CreateIndexClauseTest.java      |  4 +-
 .../org/apache/doris/analysis/IndexDefTest.java    | 10 +--
 .../persist/TableAddOrDropColumnsInfoTest.java     |  2 +-
 .../data/index_p0/test_bitmap_index.out            |  6 +-
 .../decimalv3/test_decimal256_index.groovy         |  2 +
 .../suites/datatype_p0/scalar_types/load.groovy    | 55 --------------
 .../sql/unique2_bitmap_index_q01_bool.sql          |  1 -
 .../sql/unique2_bitmap_index_q02_tinyint.sql       |  1 -
 .../sql/unique2_bitmap_index_q03_smallint.sql      |  1 -
 .../sql/unique2_bitmap_index_q04_int.sql           |  1 -
 .../sql/unique2_bitmap_index_q05_bigint.sql        |  1 -
 .../sql/unique2_bitmap_index_q06_largeint.sql      |  1 -
 .../sql/unique2_bitmap_index_q07_float.sql         |  1 -
 .../sql/unique2_bitmap_index_q08_double.sql        |  1 -
 .../sql/unique2_bitmap_index_q09_decimal.sql       |  1 -
 .../sql/unique2_bitmap_index_q10_decimalv3.sql     |  1 -
 .../sql/unique2_bitmap_index_q11_date.sql          |  1 -
 .../sql/unique2_bitmap_index_q12_datetime.sql      |  1 -
 .../sql/unique2_bitmap_index_q13_datev2.sql        |  1 -
 .../sql/unique2_bitmap_index_q14_datetimev2.sql    |  1 -
 .../sql/unique2_bitmap_index_q15_char.sql          |  1 -
 .../sql/unique2_bitmap_index_q16_varchar.sql       |  1 -
 .../sql/unique2_bitmap_index_q17_string.sql        |  1 -
 .../suites/index_p0/test_bitmap_index.groovy       |  4 +-
 .../suites/index_p0/test_index_meta.groovy         | 10 +--
 .../inverted_index_p0/test_add_drop_index.groovy   | 12 +--
 .../inverted_index_p0/test_bitmap_index.groovy     |  2 +-
 .../inverted_index_p0/test_create_index_1.groovy   | 23 +++---
 .../inverted_index_p0/test_inverted_index.groovy   |  2 +-
 .../load_p0/broker_load/ddl/mow_tbl_basic.sql      |  5 --
 .../routine_load/ddl/mow_tbl_basic_create.sql      |  5 --
 .../stream_load/ddl/mow_tbl_basic_create.sql       |  5 --
 .../suites/load_p0/tvf/ddl/mow_tbl_basic_tvf.sql   |  5 --
 .../test_segcompaction_unique_keys_index.groovy    |  2 +-
 .../suites/variant_p0/with_index/load.groovy       |  3 -
 66 files changed, 102 insertions(+), 562 deletions(-)

diff --git a/docs/en/community/design/doris_storage_optimization.md 
b/docs/en/community/design/doris_storage_optimization.md
index 4cfb5866278..3172e0b60b0 100644
--- a/docs/en/community/design/doris_storage_optimization.md
+++ b/docs/en/community/design/doris_storage_optimization.md
@@ -113,7 +113,7 @@ We generate a sparse index of short key every N rows 
(configurable) with the con
 
 ### Column's other indexes ###
 
-The format design supports the subsequent expansion of other index 
information, such as bitmap index, spatial index, etc. It only needs to write 
the required data to the existing column data, and add the corresponding 
metadata fields to FileFooterPB.
+The format design supports the subsequent expansion of other index 
information, such as inverted index, spatial index, etc. It only needs to write 
the required data to the existing column data, and add the corresponding 
metadata fields to FileFooterPB.
 
 ### Metadata Definition ###
 SegmentFooterPB is defined as:
@@ -210,7 +210,7 @@ Relevant issues:
 1. Read the magic of the file and judge the type and version of the file.
 2. Read FileFooterPB and check sum
 3. Read short key index and data ordinal index information of corresponding 
columns according to required columns
-4. Use start key and end key, locate the row number to be read through short 
key index, then determine the row ranges to be read through ordinal index, and 
filter the row ranges to be read through statistics, bitmap index and so on.
+4. Use start key and end key, locate the row number to be read through short 
key index, then determine the row ranges to be read through ordinal index, and 
filter the row ranges to be read through statistics, inverted index and so on.
 5. Then read row data through ordinal index according to row ranges
 
 Relevant issues:
@@ -232,4 +232,4 @@ It implements a scalable compression framework, supports a 
variety of compressio
 
 ## TODO ##
 1. How to implement nested types? How to locate line numbers in nested types?
-2. How to optimize the downstream bitmap and column statistics caused by 
ScanRange splitting?
+2. How to optimize the downstream inverted index and column statistics caused 
by ScanRange splitting?
diff --git a/docs/en/docs/admin-manual/query-profile.md 
b/docs/en/docs/admin-manual/query-profile.md
index f46061419c6..e8c89faaa4d 100644
--- a/docs/en/docs/admin-manual/query-profile.md
+++ b/docs/en/docs/admin-manual/query-profile.md
@@ -221,7 +221,7 @@ OLAP_SCAN_NODE (id=0):(Active: 1.2ms,% non-child: 0.00%)
     - ScanTime: 39.24us                 # The time returned from ScanNode to 
the upper node.
     - ShowHintsTime_V1: 0ns             # V2 has no meaning. Read part of the 
data in V1 to perform ScanRange segmentation.
     SegmentIterator:
-      - BitmapIndexFilterTimer: 779ns   # Use bitmap index to filter data 
time-consuming.
+      - InvertedIndexFilterTimer: 779ns # Use inverted index to filter data 
time-consuming.
       - BlockLoadTime: 415.925us        # SegmentReader(V1) or 
SegmentIterator(V2) gets the time of the block.
       - BlockSeekCount: 12              # The number of block seeks when 
reading Segment.
       - BlockSeekTime: 222.556us        # It takes time to block seek when 
reading Segment.
@@ -234,7 +234,7 @@ OLAP_SCAN_NODE (id=0):(Active: 1.2ms,% non-child: 0.00%)
       - NumSegmentFiltered: 0           # When generating Segment Iterator, 
the number of Segments that are completely filtered out through column 
statistics and query conditions.
       - NumSegmentTotal: 6              # Query the number of all segments 
involved.
       - RawRowsRead: 7                  # The number of raw rows read in the 
storage engine. See below for details.
-      - RowsBitmapIndexFiltered: 0      # Only in V2, the number of rows 
filtered by the Bitmap index.
+      - RowsInvertedIndexFiltered: 0    # Only in V2, the number of rows 
filtered by the Inverted index.
       - RowsBloomFilterFiltered: 0      # Only in V2, the number of rows 
filtered by BloomFilter index.
       - RowsKeyRangeFiltered: 0         # In V2 only, the number of rows 
filtered out by SortkeyIndex index.
       - RowsStatsFiltered: 0            # In V2, the number of rows filtered 
by the ZoneMap index, including the deletion condition. V1 also contains the 
number of rows filtered by BloomFilter.
@@ -248,8 +248,8 @@ OLAP_SCAN_NODE (id=0):(Active: 1.2ms,% non-child: 0.00%)
 The predicate push down and index usage can be inferred from the related 
indicators of the number of data rows in the profile. The following only 
describes the profile in the reading process of segment V2 format data. In 
segment V1 format, the meaning of these indicators is slightly different.
 
   - When reading a segment V2, if the query has key_ranges (the query range 
composed of prefix keys), first filter the data through the SortkeyIndex index, 
and the number of filtered rows is recorded in `RowsKeyRangeFiltered`.
-  - After that, use the Bitmap index to perform precise filtering on the 
columns containing the bitmap index in the query condition, and the number of 
filtered rows is recorded in `RowsBitmapIndexFiltered`.
-  - After that, according to the equivalent (eq, in, is) condition in the 
query condition, use the BloomFilter index to filter the data and record it in 
`RowsBloomFilterFiltered`. The value of `RowsBloomFilterFiltered` is the 
difference between the total number of rows of the Segment (not the number of 
rows filtered by the Bitmap index) and the number of remaining rows after 
BloomFilter, so the data filtered by BloomFilter may overlap with the data 
filtered by Bitmap.
+  - After that, use the Inverted index to perform precise filtering on the 
columns containing the inverted index in the query condition, and the number of 
filtered rows is recorded in `RowsInvertedIndexFiltered`.
+  - After that, according to the equivalent (eq, in, is) condition in the 
query condition, use the BloomFilter index to filter the data and record it in 
`RowsBloomFilterFiltered`. The value of `RowsBloomFilterFiltered` is the 
difference between the total number of rows of the Segment (not the number of 
rows filtered by the Inverted index) and the number of remaining rows after 
BloomFilter, so the data filtered by BloomFilter may overlap with the data 
filtered by inverted index.
   - After that, use the ZoneMap index to filter the data according to the 
query conditions and delete conditions and record it in `RowsStatsFiltered`.
   - `RowsConditionsFiltered` is the number of rows filtered by various 
indexes, including the values ​​of `RowsBloomFilterFiltered` and 
`RowsStatsFiltered`.
   - So far, the Init phase is completed, and the number of rows filtered by 
the condition to be deleted in the Next phase is recorded in `RowsDelFiltered`. 
Therefore, the number of rows actually filtered by the delete condition are 
recorded in `RowsStatsFiltered` and `RowsDelFiltered` respectively.
diff --git a/docs/en/docs/advanced/alter-table/schema-change.md 
b/docs/en/docs/advanced/alter-table/schema-change.md
index 9ebb017d855..7a22b8e694d 100644
--- a/docs/en/docs/advanced/alter-table/schema-change.md
+++ b/docs/en/docs/advanced/alter-table/schema-change.md
@@ -31,8 +31,7 @@ Users can modify the schema of existing tables through the 
Schema Change operati
 * Add and delete columns
 * Modify column type
 * Adjust column order
-* Add and modify Bloom Filter
-* Add and delete bitmap index
+* Add and delete index
 
 This document mainly describes how to create a Schema Change job, as well as 
some considerations and frequently asked questions about Schema Change.
 ## Glossary
diff --git a/docs/en/docs/advanced/cold-hot-separation.md 
b/docs/en/docs/advanced/cold-hot-separation.md
index 179f0c43e72..308b585e029 100644
--- a/docs/en/docs/advanced/cold-hot-separation.md
+++ b/docs/en/docs/advanced/cold-hot-separation.md
@@ -167,7 +167,6 @@ The supported schema change types after data cooling are as 
follows:
 * Modify column type
 * Adjust column order
 * Add and modify Bloom Filter
-* Add and delete bitmap index
 
 ## cold data Garbage collection
 The garbage data of cold data refers to the data that is not used by any 
Replica. Object storage may have garbage data generated by the following 
situations:
diff --git a/docs/en/docs/data-table/best-practice.md 
b/docs/en/docs/data-table/best-practice.md
index 2dda2d91a26..5c4333bd7b8 100644
--- a/docs/en/docs/data-table/best-practice.md
+++ b/docs/en/docs/data-table/best-practice.md
@@ -177,7 +177,6 @@ Users can modify the Schema of an existing table through 
the Schema Change opera
 - Adding and deleting columns
 - Modify column types
 - Reorder columns
-- Adding or modifying Bloom Filter
-- Adding or removing bitmap index
+- Adding or removing index
 
 For details, please refer to [Schema 
Change](../advanced/alter-table/schema-change.md)
\ No newline at end of file
diff --git a/docs/en/docs/data-table/index/bitmap-index.md 
b/docs/en/docs/data-table/index/bitmap-index.md
deleted file mode 100644
index e743f2e94b9..00000000000
--- a/docs/en/docs/data-table/index/bitmap-index.md
+++ /dev/null
@@ -1,83 +0,0 @@
----
-{
-    "title": "Bitmap Index",
-    "language": "en"
-}
----
-
-<!-- 
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-# Bitmap Index
-Users can speed up queries by creating a bitmap index
-This document focuses on how to create an index job, as well as some 
considerations and frequently asked questions when creating an index.
-
-## Glossary
-* bitmap index: a fast data structure that speeds up queries
-
-## Basic Principles
-Creating and dropping index is essentially a schema change job. For details, 
please refer to
-[Schema Change](../../advanced/alter-table/schema-change.md).
-
-## Syntax
-### Create index
-
-Create a bitmap index for siteid on table1
-
-```sql
-CREATE INDEX [IF NOT EXISTS] index_name ON table1 (siteid) USING BITMAP 
COMMENT 'balabala';
-```
-
-### View index
-
-Display the lower index of the specified table_name
-
-```sql
-SHOW INDEX FROM example_db.table_name;
-```
-
-### Delete index
-
-Delete the lower index of the specified table_name
-
-```sql
-DROP INDEX [IF EXISTS] index_name ON [db_name.]table_name;
-```
-
-## Notice
-* Currently only index of bitmap type is supported.
-* The bitmap index is only created on a single column.
-* Bitmap indexes can be applied to all columns of the `Duplicate` , `Uniq`  
data model and key columns of the `Aggregate`  models.
-* The data types supported by bitmap indexes are as follows:
-    * `TINYINT`
-    * `SMALLINT`
-    * `INT`
-    * `BIGINT`
-    * `CHAR`
-    * `VARCHAR`
-    * `DATE`
-    * `DATETIME`
-    * `LARGEINT`
-    * `DECIMAL`
-    * `BOOL`
-* The bitmap index takes effect only in segmentV2. The table's storage format 
will be converted to V2 automatically when creating index.
-
-### More Help
-
-For more detailed syntax and best practices for using bitmap indexes, please 
refer to the  [CREARE 
INDEX](../../sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-INDEX.md)
 / [SHOW INDEX](../../sql-manual/sql-reference/Show-Statements/SHOW-INDEX.md) / 
[DROP 
INDEX](../../sql-manual/sql-reference/Data-Definition-Statements/Drop/DROP-INDEX.md)
  command manual. You can also enter HELP CREATE INDEX / HELP SHOW INDEX / HELP 
DROP INDEX on the MySql client command line.
diff --git a/docs/en/docs/data-table/index/bloomfilter.md 
b/docs/en/docs/data-table/index/bloomfilter.md
index 4a6f783fd43..83368c79fd4 100644
--- a/docs/en/docs/data-table/index/bloomfilter.md
+++ b/docs/en/docs/data-table/index/bloomfilter.md
@@ -121,7 +121,7 @@ You can consider establishing a Bloom Filter index for a 
column when the followi
 
 1. First, BloomFilter is suitable for non-prefix filtering.
 2. The query will be filtered according to the high frequency of the column, 
and most of the query conditions are in and = filtering.
-3. Unlike Bitmap, BloomFilter is suitable for high cardinality columns. Such 
as UserID. Because if it is created on a low-cardinality column, such as a 
"gender" column, each Block will almost contain all values, causing the 
BloomFilter index to lose its meaning.
+3. BloomFilter is suitable for high cardinality columns. Such as UserID. 
Because if it is created on a low-cardinality column, such as a "gender" 
column, each Block will almost contain all values, causing the BloomFilter 
index to lose its meaning.
 
 ### **Doris BloomFilter Use Precautions**
 
diff --git a/docs/en/docs/data-table/index/index-overview.md 
b/docs/en/docs/data-table/index/index-overview.md
index 274f0d7d4ff..0e56e11307a 100644
--- a/docs/en/docs/data-table/index/index-overview.md
+++ b/docs/en/docs/data-table/index/index-overview.md
@@ -30,7 +30,7 @@ Indexes are used to help quickly filter or find data.
 
 Doris currently supports two main types of indexes:
 1. built-in smart indexes, including prefix indexes and ZoneMap indexes.
-2. User-created secondary indexes, including the [inverted 
index](./inverted-index.md), [bloomfilter index](./bloomfilter.md)、[ngram 
bloomfilter index](./ngram-bloomfilter-index.md) and [bitmap 
index](./bitmap-index.md).
+2. User-created secondary indexes, including the [inverted 
index](./inverted-index.md), [bloomfilter index](./bloomfilter.md) and [ngram 
bloomfilter index](./ngram-bloomfilter-index.md).
 
 The ZoneMap index is the index information automatically maintained for each 
column in the column storage format, including Min/Max, the number of Null 
values, and so on. This index is transparent to the user.
 
diff --git a/docs/en/docs/data-table/index/inverted-index.md 
b/docs/en/docs/data-table/index/inverted-index.md
index 2f511f312f4..20ea94b026b 100644
--- a/docs/en/docs/data-table/index/inverted-index.md
+++ b/docs/en/docs/data-table/index/inverted-index.md
@@ -24,7 +24,7 @@ specific language governing permissions and limitations
 under the License.
 -->
 
-# [Experimental] Inverted Index
+# Inverted Index
 
 <version since="2.0.0">
  
@@ -56,7 +56,7 @@ The features for inverted index is as follows:
   - support regexp query MATCH_REGEXP
   - support fulltext on array of text field
   - support english, chinese and mixed unicode word parser
-- accelerate normal equal, range query, replacing bitmap index in the future
+- accelerate normal equal, range query, replacing bitmap index
   - suport =, !=, >, >=, <, <= on text, numeric, datetime types
   - suport =, !=, >, >=, <, <= on array of text, numeric, datetime types
 - complete suport for logic combination
diff --git a/docs/en/docs/data-table/index/ngram-bloomfilter-index.md 
b/docs/en/docs/data-table/index/ngram-bloomfilter-index.md
index 1bb499a3317..4242431f7d8 100644
--- a/docs/en/docs/data-table/index/ngram-bloomfilter-index.md
+++ b/docs/en/docs/data-table/index/ngram-bloomfilter-index.md
@@ -24,7 +24,7 @@ specific language governing permissions and limitations
 under the License.
 -->
 
-# [Experimental] NGram BloomFilter Index
+# NGram BloomFilter Index
 
 <version since="2.0.0">
 </version>
diff --git 
a/docs/en/docs/sql-manual/sql-reference/Data-Definition-Statements/Alter/ALTER-TABLE-BITMAP.md
 
b/docs/en/docs/sql-manual/sql-reference/Data-Definition-Statements/Alter/ALTER-TABLE-BITMAP.md
deleted file mode 100644
index 4ce8f42c798..00000000000
--- 
a/docs/en/docs/sql-manual/sql-reference/Data-Definition-Statements/Alter/ALTER-TABLE-BITMAP.md
+++ /dev/null
@@ -1,86 +0,0 @@
----
-{
-    "title": "ALTER-TABLE-BITMAP",
-    "language": "en"
-}
----
-
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-## ALTER-TABLE-BITMAP
-
-### Name
-
-ALTER TABLE BITMAP
-
-### Description
-
-This statement is used to perform a bitmap index operation on an existing 
table.
-
-grammar:
-
-```sql
-ALTER TABLE [database.]table alter_clause;
-```
-
-The alter_clause of bitmap index supports the following modification methods
-
-1. Create a bitmap index
-
- Syntax:
-
-```sql
-ADD INDEX [IF NOT EXISTS] index_name (column [, ...],) [USING BITMAP] [COMMENT 
'balabala'];
-```
-
-Notice:
-
-- Currently only supports bitmap indexes
-- BITMAP indexes are only created on a single column
-
-2. Delete the index
-
-Syntax:
-
-```sql
-DROP INDEX [IF EXISTS] index_name;
-```
-
-### Example
-
-1. Create a bitmap index for siteid on table1
-
-```sql
-ALTER TABLE table1 ADD INDEX [IF NOT EXISTS] index_name (siteid) [USING 
BITMAP] COMMENT 'balabala';
-```
-
-2. Delete the bitmap index of the siteid column on table1
-
-```sql
-ALTER TABLE table1 DROP INDEX [IF EXISTS] index_name;
-```
-
-### Keywords
-
-```text
-ALTER, TABLE, BITMAP, INDEX, ALTER TABLE
-```
-
-### Best Practice
diff --git 
a/docs/en/docs/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-INDEX.md
 
b/docs/en/docs/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-INDEX.md
index 124293c687e..016034b52e0 100644
--- 
a/docs/en/docs/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-INDEX.md
+++ 
b/docs/en/docs/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-INDEX.md
@@ -36,18 +36,17 @@ This statement is used to create an index
 grammar:
 
 ```sql
-CREATE INDEX [IF NOT EXISTS] index_name ON table_name (column [, ...],) [USING 
BITMAP] [COMMENT 'balabala'];
+CREATE INDEX [IF NOT EXISTS] index_name ON table_name (column [, ...],) [USING 
INVERTED] [COMMENT 'balabala'];
 ````
 Notice:
-- Currently only supports bitmap indexes
-- BITMAP indexes are only created on a single column
+- INVERTED indexes are only created on a single column
 
 ### Example
 
-1. Create a bitmap index for siteid on table1
+1. Create a inverted index for siteid on table1
 
     ```sql
-    CREATE INDEX [IF NOT EXISTS] index_name ON table1 (siteid) USING BITMAP 
COMMENT 'balabala';
+    CREATE INDEX [IF NOT EXISTS] index_name ON table1 (siteid) USING INVERTED 
COMMENT 'balabala';
     ````
 
 
diff --git 
a/docs/en/docs/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE.md
 
b/docs/en/docs/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE.md
index cfa612bca4d..012720428c2 100644
--- 
a/docs/en/docs/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE.md
+++ 
b/docs/en/docs/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE.md
@@ -171,14 +171,14 @@ Index list definition:
     Index definition:
 
     ```sql
-    INDEX index_name (col_name) [USING BITMAP] COMMENT'xxxxxx'
+    INDEX index_name (col_name) [USING INVERTED] COMMENT'xxxxxx'
     ```
 
     Example:
 
     ```sql
-    INDEX idx1 (k1) USING BITMAP COMMENT "This is a bitmap index1",
-    INDEX idx2 (k2) USING BITMAP COMMENT "This is a bitmap index2",
+    INDEX idx1 (k1) USING INVERTED COMMENT "This is a inverted index1",
+    INDEX idx2 (k2) USING INVERTED COMMENT "This is a inverted index2",
     ...
     ```
 
@@ -594,7 +594,7 @@ Set table properties. The following attributes are 
currently supported:
     );
     ```
 
-7. Create a table with bitmap index and bloom filter index
+7. Create a table with inverted index and bloom filter index
 
     ```sql
     CREATE TABLE example_db.table_hash
@@ -603,7 +603,7 @@ Set table properties. The following attributes are 
currently supported:
         k2 DECIMAL(10, 2) DEFAULT "10.5",
         v1 CHAR(10) REPLACE,
         v2 INT SUM,
-        INDEX k1_idx (k1) USING BITMAP COMMENT'my first index'
+        INDEX k1_idx (k1) USING INVERTED COMMENT'my first index'
     )
     AGGREGATE KEY(k1, k2)
     DISTRIBUTED BY HASH(k1) BUCKETS 32
diff --git 
a/docs/en/docs/sql-manual/sql-reference/Data-Definition-Statements/Drop/DROP-INDEX.md
 
b/docs/en/docs/sql-manual/sql-reference/Data-Definition-Statements/Drop/DROP-INDEX.md
index ae4088f7301..d4276a1e82b 100644
--- 
a/docs/en/docs/sql-manual/sql-reference/Data-Definition-Statements/Drop/DROP-INDEX.md
+++ 
b/docs/en/docs/sql-manual/sql-reference/Data-Definition-Statements/Drop/DROP-INDEX.md
@@ -32,7 +32,7 @@ DROP INDEX
 
 ### Description
 
-This statement is used to delete the index of the specified name from a table. 
Currently, only bitmap indexes are supported.
+This statement is used to delete the index of the specified name from a table.
 grammar:
 
 ```sql
diff --git 
a/docs/en/docs/sql-manual/sql-reference/Show-Statements/SHOW-INDEX.md 
b/docs/en/docs/sql-manual/sql-reference/Show-Statements/SHOW-INDEX.md
index cf9d4052602..b55fb64b9b8 100644
--- a/docs/en/docs/sql-manual/sql-reference/Show-Statements/SHOW-INDEX.md
+++ b/docs/en/docs/sql-manual/sql-reference/Show-Statements/SHOW-INDEX.md
@@ -32,7 +32,7 @@ SHOW INDEX
 
 ### Description
 
-  This statement is used to display information about indexes in a table. 
Currently, only bitmap indexes are supported.
+  This statement is used to display information about indexes in a table.
 
 grammar:
 
diff --git a/docs/sidebars.json b/docs/sidebars.json
index c32918f8eed..7ee8bb453eb 100644
--- a/docs/sidebars.json
+++ b/docs/sidebars.json
@@ -60,8 +60,7 @@
                         "data-table/index/index-overview",
                         "data-table/index/inverted-index",
                         "data-table/index/bloomfilter",
-                        "data-table/index/ngram-bloomfilter-index",
-                        "data-table/index/bitmap-index"
+                        "data-table/index/ngram-bloomfilter-index"
                     ]
                 }
             ]
@@ -989,7 +988,6 @@
                                         
"sql-manual/sql-reference/Data-Definition-Statements/Alter/ALTER-DATABASE",
                                         
"sql-manual/sql-reference/Data-Definition-Statements/Alter/ALTER-TABLE-COLUMN",
                                         
"sql-manual/sql-reference/Data-Definition-Statements/Alter/ALTER-TABLE-PARTITION",
-                                        
"sql-manual/sql-reference/Data-Definition-Statements/Alter/ALTER-TABLE-BITMAP",
                                         
"sql-manual/sql-reference/Data-Definition-Statements/Alter/ALTER-TABLE-ROLLUP",
                                         
"sql-manual/sql-reference/Data-Definition-Statements/Alter/ALTER-TABLE-RENAME",
                                         
"sql-manual/sql-reference/Data-Definition-Statements/Alter/ALTER-TABLE-REPLACE",
diff --git a/docs/zh-CN/docs/advanced/alter-table/schema-change.md 
b/docs/zh-CN/docs/advanced/alter-table/schema-change.md
index 9157b0d718f..2d5474fc62d 100644
--- a/docs/zh-CN/docs/advanced/alter-table/schema-change.md
+++ b/docs/zh-CN/docs/advanced/alter-table/schema-change.md
@@ -31,8 +31,7 @@ under the License.
 - 增加、删除列
 - 修改列类型
 - 调整列顺序
-- 增加、修改 Bloom Filter
-- 增加、删除 bitmap index
+- 增加、删除索引
 
 本文档主要介绍如何创建 Schema Change 作业,以及进行 Schema Change 的一些注意事项和常见问题。
 
diff --git a/docs/zh-CN/docs/advanced/cold-hot-separation.md 
b/docs/zh-CN/docs/advanced/cold-hot-separation.md
index c81c45dc717..72241cedcbc 100644
--- a/docs/zh-CN/docs/advanced/cold-hot-separation.md
+++ b/docs/zh-CN/docs/advanced/cold-hot-separation.md
@@ -167,7 +167,6 @@ ALTER TABLE create_table_partition MODIFY PARTITION (*) 
SET("storage_policy"="te
 - 修改列类型
 - 调整列顺序
 - 增加、修改 Bloom Filter
-- 增加、删除 bitmap index
 
 ## 冷数据的垃圾回收
 冷数据的垃圾数据是指没有被任何Replica使用的数据,对象存储上可能会有如下情况产生的垃圾数据:
diff --git a/docs/zh-CN/docs/data-table/best-practice.md 
b/docs/zh-CN/docs/data-table/best-practice.md
index fc71426af16..1597d3b56b9 100644
--- a/docs/zh-CN/docs/data-table/best-practice.md
+++ b/docs/zh-CN/docs/data-table/best-practice.md
@@ -176,7 +176,6 @@ ALTER TABLE session_data ADD ROLLUP 
rollup_browser(browser,province,ip,url) DUPL
 - 增加、删除列
 - 修改列类型
 - 调整列顺序
-- 增加、修改 Bloom Filter
-- 增加、删除 bitmap index
+- 增加、删除索引
 
 具体请参照 [Schema 变更](../advanced/alter-table/schema-change.md)
diff --git a/docs/zh-CN/docs/data-table/index/bitmap-index.md 
b/docs/zh-CN/docs/data-table/index/bitmap-index.md
deleted file mode 100644
index 91d8803d77e..00000000000
--- a/docs/zh-CN/docs/data-table/index/bitmap-index.md
+++ /dev/null
@@ -1,85 +0,0 @@
----
-{
-    "title": "Bitmap 索引",
-    "language": "zh-CN"
-}
----
-
-<!-- 
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-# Bitmap 索引
-
-用户可以通过创建bitmap index 加速查询 本文档主要介绍如何创建 index 作业,以及创建 index 的一些注意事项和常见问题。
-
-## 名词解释
-
-- bitmap index:位图索引,是一种快速数据结构,能够加快查询速度
-
-## 原理介绍
-
-创建和删除本质上是一个 schema change 的作业,具体细节可以参照 [Schema 
Change](../../advanced/alter-table/schema-change.md)。
-
-## 语法
-
-### 创建索引
-
-在table1 上为siteid 创建bitmap 索引
-
-```sql
-CREATE INDEX [IF NOT EXISTS] index_name ON table1 (siteid) USING BITMAP 
COMMENT 'balabala';
-```
-
-### 查看索引
-
-展示指定 table_name 的下索引
-
-```sql
-SHOW INDEX FROM example_db.table_name;
-```
-
-### 删除索引
-
-删除指定 table_name 的下索引
-
-```sql
-DROP INDEX [IF EXISTS] index_name ON [db_name.]table_name;
-```
-
-## 注意事项
-
-- bitmap 索引仅在单列上创建。
-- bitmap 索引能够应用在 `Duplicate`、`Uniq`  数据模型的所有列和 `Aggregate`模型的key列上。
-- bitmap 索引支持的数据类型如下:
-  - `TINYINT`
-  - `SMALLINT`
-  - `INT`
-  - `BIGINT`
-  - `CHAR`
-  - `VARCHAR`
-  - `DATE`
-  - `DATETIME`
-  - `LARGEINT`
-  - `DECIMAL`
-  - `BOOL`
-- bitmap索引仅在 Segment V2 下生效。当创建 index 时,表的存储格式将默认转换为 V2 格式。
-
-## 更多帮助
-
-关于 bitmap索引 使用的更多详细语法及最佳实践,请参阅 [CREARE 
INDEX](../../sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-INDEX.md)
 / [SHOW INDEX](../../sql-manual/sql-reference/Show-Statements/SHOW-INDEX.md) / 
[DROP 
INDEX](../../sql-manual/sql-reference/Data-Definition-Statements/Drop/DROP-INDEX.md)
 命令手册,你也可以在 MySql 客户端命令行下输入 `HELP CREATE INDEX` /  `HELP SHOW INDEX` / `HELP 
DROP INDEX`。
diff --git a/docs/zh-CN/docs/data-table/index/bloomfilter.md 
b/docs/zh-CN/docs/data-table/index/bloomfilter.md
index ef8c4a5e4e7..2390101a43b 100644
--- a/docs/zh-CN/docs/data-table/index/bloomfilter.md
+++ b/docs/zh-CN/docs/data-table/index/bloomfilter.md
@@ -118,7 +118,7 @@ ALTER TABLE <db.table_name> SET ("bloom_filter_columns" = 
"k1,k3");
 
 1. 首先BloomFilter适用于非前缀过滤。
 2. 查询会根据该列高频过滤,而且查询条件大多是 in 和 = 过滤。
-3. 不同于Bitmap, BloomFilter适用于高基数列。比如UserID。因为如果创建在低基数的列上,比如 “性别” 
列,则每个Block几乎都会包含所有取值,导致BloomFilter索引失去意义。
+3. BloomFilter适用于高基数列。比如UserID。因为如果创建在低基数的列上,比如 “性别” 
列,则每个Block几乎都会包含所有取值,导致BloomFilter索引失去意义。
 
 ## **Doris BloomFilter使用注意事项**
 
diff --git a/docs/zh-CN/docs/data-table/index/index-overview.md 
b/docs/zh-CN/docs/data-table/index/index-overview.md
index a91d68e31e2..6ac01b76d63 100644
--- a/docs/zh-CN/docs/data-table/index/index-overview.md
+++ b/docs/zh-CN/docs/data-table/index/index-overview.md
@@ -29,7 +29,7 @@ under the License.
 
 目前 Doris 主要支持两类索引:
 1. 内建的智能索引,包括前缀索引和 ZoneMap 索引。
-2. 用户手动创建的二级索引,包括 [倒排索引](./inverted-index.md)、 
[bloomfilter索引](./bloomfilter.md)、 [ngram 
bloomfilter索引](./ngram-bloomfilter-index.md) 和[bitmap索引](./bitmap-index.md)。
+2. 用户手动创建的二级索引,包括 [倒排索引](./inverted-index.md)、 
[bloomfilter索引](./bloomfilter.md) 和 [ngram 
bloomfilter索引](./ngram-bloomfilter-index.md) 。
 
 其中 ZoneMap 索引是在列存格式上,对每一列自动维护的索引信息,包括 Min/Max,Null 值个数等等。这种索引对用户透明。
 
diff --git a/docs/zh-CN/docs/data-table/index/inverted-index.md 
b/docs/zh-CN/docs/data-table/index/inverted-index.md
index ff29c75d6db..53461d8a026 100644
--- a/docs/zh-CN/docs/data-table/index/inverted-index.md
+++ b/docs/zh-CN/docs/data-table/index/inverted-index.md
@@ -24,7 +24,7 @@ specific language governing permissions and limitations
 under the License.
 -->
 
-# [Experimental] 倒排索引
+# 倒排索引
 
 <version since="2.0.0">
  
@@ -56,7 +56,7 @@ Doris倒排索引的功能简要介绍如下:
   - 支持正则查询 MATCH_REGEXP
   - 支持字符串数组类型的全文检索
   - 支持英文、中文以及Unicode多语言分词
-- 加速普通等值、范围查询,覆盖bitmap索引的功能,未来会代替bitmap索引
+- 加速普通等值、范围查询,覆盖bitmap索引的功能,可代替bitmap索引
   - 支持字符串、数值、日期时间类型的 =, !=, >, >=, <, <= 快速过滤
   - 支持字符串、数字、日期时间数组类型的 =, !=, >, >=, <, <=
 - 支持完善的逻辑组合
diff --git a/docs/zh-CN/docs/data-table/index/ngram-bloomfilter-index.md 
b/docs/zh-CN/docs/data-table/index/ngram-bloomfilter-index.md
index 0549db8d626..f5e1780c102 100644
--- a/docs/zh-CN/docs/data-table/index/ngram-bloomfilter-index.md
+++ b/docs/zh-CN/docs/data-table/index/ngram-bloomfilter-index.md
@@ -24,7 +24,7 @@ specific language governing permissions and limitations
 under the License.
 -->
 
-# [Experimental] NGram BloomFilter索引及使用使用场景
+# NGram BloomFilter索引及使用使用场景
 
 <version since="2.0.0">
 </version>
diff --git 
a/docs/zh-CN/docs/sql-manual/sql-reference/Data-Definition-Statements/Alter/ALTER-TABLE-BITMAP.md
 
b/docs/zh-CN/docs/sql-manual/sql-reference/Data-Definition-Statements/Alter/ALTER-TABLE-BITMAP.md
deleted file mode 100644
index 9a960f2f750..00000000000
--- 
a/docs/zh-CN/docs/sql-manual/sql-reference/Data-Definition-Statements/Alter/ALTER-TABLE-BITMAP.md
+++ /dev/null
@@ -1,87 +0,0 @@
----
-{
-    "title": "ALTER-TABLE-BITMAP",
-    "language": "zh-CN"
-}
----
-
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-## ALTER-TABLE-BITMAP
-
-### Name
-
-ALTER  TABLE  BITMAP
-
-### Description
-
-该语句用于对已有 table 进行 bitmap index 操作。
-
-语法:
-
-```sql
-ALTER TABLE [database.]table alter_clause;
-```
-
-bitmap index 的 alter_clause 支持如下几种修改方式
-
-1. 创建bitmap 索引
-
-语法:
-
-```sql
-ADD INDEX [IF NOT EXISTS] index_name (column [, ...],) [USING BITMAP] [COMMENT 
'balabala'];
-```
-
-注意:
-
-- 目前仅支持bitmap 索引
-- BITMAP 索引仅在单列上创建
-
-2. 删除索引
-
-语法:
-
-```sql
-DROP INDEX [IF EXISTS] index_name;
-```
-
-### Example
-
-1. 在table1 上为siteid 创建bitmap 索引
-
-```sql
-ALTER TABLE table1 ADD INDEX [IF NOT EXISTS] index_name (siteid) [USING 
BITMAP] COMMENT 'balabala';
-```
-
-2. 删除table1 上的siteid列的bitmap 索引
-
-```sql
-ALTER TABLE table1 DROP INDEX [IF EXISTS] index_name;
-```
-
-### Keywords
-
-```text
-ALTER, TABLE, BITMAP, INDEX, ALTER TABLE
-```
-
-### Best Practice
-
diff --git 
a/docs/zh-CN/docs/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-INDEX.md
 
b/docs/zh-CN/docs/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-INDEX.md
index eb161c36627..5a87a10329f 100644
--- 
a/docs/zh-CN/docs/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-INDEX.md
+++ 
b/docs/zh-CN/docs/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-INDEX.md
@@ -36,18 +36,17 @@ CREATE INDEX
 语法:
 
 ```sql
-CREATE INDEX [IF NOT EXISTS] index_name ON table_name (column [, ...],) [USING 
BITMAP] [COMMENT'balabala'];
+CREATE INDEX [IF NOT EXISTS] index_name ON table_name (column [, ...],) [USING 
INVERTED] [COMMENT'balabala'];
 ```
 注意:
-- 目前只支持bitmap 索引
-- BITMAP 索引仅在单列上创建
+- 倒排索引仅在单列上创建
 
 ### Example
 
-1. 在table1 上为siteid 创建bitmap 索引
+1. 在table1 上为siteid 创建倒排索引
 
    ```sql
-   CREATE INDEX [IF NOT EXISTS] index_name ON table1 (siteid) USING BITMAP 
COMMENT 'balabala';
+   CREATE INDEX [IF NOT EXISTS] index_name ON table1 (siteid) USING INVERTED 
COMMENT 'balabala';
    ```
 
 
diff --git 
a/docs/zh-CN/docs/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE.md
 
b/docs/zh-CN/docs/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE.md
index e288dea49a5..e760bf9892f 100644
--- 
a/docs/zh-CN/docs/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE.md
+++ 
b/docs/zh-CN/docs/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-TABLE.md
@@ -159,14 +159,14 @@ distribution_desc
     索引定义:
 
     ```sql
-    INDEX index_name (col_name) [USING BITMAP] COMMENT 'xxxxxx'
+    INDEX index_name (col_name) [USING INVERTED] COMMENT 'xxxxxx'
     ```
 
     示例:
     
     ```sql
-    INDEX idx1 (k1) USING BITMAP COMMENT "This is a bitmap index1",
-    INDEX idx2 (k2) USING BITMAP COMMENT "This is a bitmap index2",
+    INDEX idx1 (k1) USING INVERTED COMMENT "This is a inverted index1",
+    INDEX idx2 (k2) USING INVERTED COMMENT "This is a inverted index2",
     ...
     ```
 
@@ -576,7 +576,7 @@ UNIQUE KEY(k1, k2)
     );
     ```
 
-7. 创建一个带有 bitmap 索引以及 bloom filter 索引的表
+7. 创建一个带有倒排索引以及 bloom filter 索引的表
 
     ```sql
     CREATE TABLE example_db.table_hash
@@ -585,7 +585,7 @@ UNIQUE KEY(k1, k2)
         k2 DECIMAL(10, 2) DEFAULT "10.5",
         v1 CHAR(10) REPLACE,
         v2 INT SUM,
-        INDEX k1_idx (k1) USING BITMAP COMMENT 'my first index'
+        INDEX k1_idx (k1) USING INVERTED COMMENT 'my first index'
     )
     AGGREGATE KEY(k1, k2)
     DISTRIBUTED BY HASH(k1) BUCKETS 32
diff --git a/fe/fe-core/src/main/cup/sql_parser.cup 
b/fe/fe-core/src/main/cup/sql_parser.cup
index bcef197ca99..3893343ebb7 100644
--- a/fe/fe-core/src/main/cup/sql_parser.cup
+++ b/fe/fe-core/src/main/cup/sql_parser.cup
@@ -3807,7 +3807,7 @@ opt_index_type ::=
     :}
     | KW_USING KW_BITMAP
     {:
-        RESULT = IndexDef.IndexType.BITMAP;
+        RESULT = IndexDef.IndexType.INVERTED;
     :}
     | KW_USING KW_NGRAM_BF
     {:
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/IndexDef.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/IndexDef.java
index f0ae827bc5f..6612a27dfaa 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/IndexDef.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/IndexDef.java
@@ -55,7 +55,7 @@ public class IndexDef {
         this.ifNotExists = ifNotExists;
         this.columns = columns;
         if (indexType == null) {
-            this.indexType = IndexType.BITMAP;
+            this.indexType = IndexType.INVERTED;
         } else {
             this.indexType = indexType;
         }
@@ -222,18 +222,14 @@ public class IndexDef {
                     || colType.isFixedPointType() || colType.isStringType() || 
colType == PrimitiveType.BOOLEAN
                     || colType.isVariantType())) {
                 throw new AnalysisException(colType + " is not supported in " 
+ indexType.toString() + " index. "
-                        + "invalid column: " + indexColName);
-            } else if (indexType == IndexType.INVERTED
-                    && ((keysType == KeysType.AGG_KEYS && !column.isKey())
-                        || (keysType == KeysType.UNIQUE_KEYS && 
!enableUniqueKeyMergeOnWrite))) {
-                throw new AnalysisException(indexType.toString()
-                    + " index only used in columns of DUP_KEYS table"
-                    + " or UNIQUE_KEYS table with merge_on_write enabled"
-                    + " or key columns of AGG_KEYS table. invalid column: " + 
indexColName);
-            } else if (keysType == KeysType.AGG_KEYS && !column.isKey() && 
indexType != IndexType.INVERTED) {
+                        + "invalid index: " + indexName);
+            }
+            if (!column.isKey()
+                    && ((keysType == KeysType.UNIQUE_KEYS && 
!enableUniqueKeyMergeOnWrite)
+                        || keysType == KeysType.AGG_KEYS)) {
                 throw new AnalysisException(indexType.toString()
-                    + " index only used in columns of DUP_KEYS/UNIQUE_KEYS 
table or key columns of"
-                    + " AGG_KEYS table. invalid column: " + indexColName);
+                    + " index only used in columns of DUP_KEYS/UNIQUE_KEYS MOW 
table or key columns of all table."
+                    + " invalid index: " + indexName);
             }
 
             if (indexType == IndexType.INVERTED) {
@@ -243,10 +239,6 @@ public class IndexDef {
                         && colType != PrimitiveType.STRING) {
                     throw new AnalysisException(colType + " is not supported 
in ngram_bf index. "
                                                     + "invalid column: " + 
indexColName);
-                } else if ((keysType == KeysType.AGG_KEYS && !column.isKey())) 
{
-                    throw new AnalysisException(
-                        "ngram_bf index only used in columns of 
DUP_KEYS/UNIQUE_KEYS table or key columns of"
-                        + " AGG_KEYS table. invalid column: " + indexColName);
                 }
                 if (properties.size() != 2) {
                     throw new AnalysisException("ngram_bf index should have 
gram_size and bf_size properties");
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java
index c0e85621e5e..d408e446b1f 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java
@@ -2527,6 +2527,10 @@ public class LogicalPlanBuilder extends 
DorisParserBaseVisitor<Object> {
         Map<String, String> properties = visitPropertyItemList(ctx.properties);
         String indexType = ctx.indexType != null ? 
ctx.indexType.getText().toUpperCase() : null;
         String comment = ctx.comment != null ? ctx.comment.getText() : "";
+        // change BITMAP index to INVERTED index
+        if (indexType.equalsIgnoreCase("BITMAP")) {
+            indexType = "INVERTED";
+        }
         return new IndexDefinition(indexName, indexCols, indexType, 
properties, comment);
     }
 
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/IndexDefinition.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/IndexDefinition.java
index dcc26e1248f..6f298e73e35 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/IndexDefinition.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/IndexDefinition.java
@@ -58,7 +58,7 @@ public class IndexDefinition {
             Map<String, String> properties, String comment) {
         this.name = name;
         this.cols = Utils.copyRequiredList(cols);
-        this.indexType = IndexType.BITMAP;
+        this.indexType = IndexType.INVERTED;
         if (indexTypeName != null) {
             switch (indexTypeName) {
                 case "BITMAP": {
@@ -108,19 +108,14 @@ public class IndexDefinition {
                     || colType.isBooleanType())) {
                 // TODO add colType.isVariantType() and colType.isAggState()
                 throw new AnalysisException(colType + " is not supported in " 
+ indexType.toString()
-                        + " index. " + "invalid column: " + indexColName);
-            } else if (indexType == IndexType.INVERTED && ((keysType == 
KeysType.AGG_KEYS
-                    && !column.isKey())
-                    || (keysType == KeysType.UNIQUE_KEYS && 
!enableUniqueKeyMergeOnWrite))) {
-                throw new AnalysisException(indexType.toString()
-                        + " index only used in columns of DUP_KEYS table"
-                        + " or UNIQUE_KEYS table with merge_on_write enabled"
-                        + " or key columns of AGG_KEYS table. invalid column: 
" + indexColName);
-            } else if (keysType == KeysType.AGG_KEYS && !column.isKey()
-                    && indexType != IndexType.INVERTED) {
+                        + " index. " + "invalid index: " + name);
+            }
+            if (!column.isKey()
+                    && ((keysType == KeysType.UNIQUE_KEYS && 
!enableUniqueKeyMergeOnWrite)
+                        || keysType == KeysType.AGG_KEYS)) {
                 throw new AnalysisException(indexType.toString()
-                        + " index only used in columns of DUP_KEYS/UNIQUE_KEYS 
table or key columns of"
-                        + " AGG_KEYS table. invalid column: " + indexColName);
+                    + " index only used in columns of DUP_KEYS/UNIQUE_KEYS MOW 
table or key columns of all table."
+                    + " invalid index: " + name);
             }
 
             if (indexType == IndexType.INVERTED) {
@@ -134,10 +129,6 @@ public class IndexDefinition {
                 if (!colType.isStringLikeType()) {
                     throw new AnalysisException(colType + " is not supported 
in ngram_bf index. "
                             + "invalid column: " + indexColName);
-                } else if ((keysType == KeysType.AGG_KEYS && !column.isKey())) 
{
-                    throw new AnalysisException(
-                            "ngram_bf index only used in columns of 
DUP_KEYS/UNIQUE_KEYS table or key columns of"
-                                    + " AGG_KEYS table. invalid column: " + 
indexColName);
                 }
                 if (properties.size() != 2) {
                     throw new AnalysisException(
diff --git 
a/fe/fe-core/src/test/java/org/apache/doris/analysis/CreateIndexClauseTest.java 
b/fe/fe-core/src/test/java/org/apache/doris/analysis/CreateIndexClauseTest.java
index 88aae9c4e24..7341b8e7bcf 100644
--- 
a/fe/fe-core/src/test/java/org/apache/doris/analysis/CreateIndexClauseTest.java
+++ 
b/fe/fe-core/src/test/java/org/apache/doris/analysis/CreateIndexClauseTest.java
@@ -37,10 +37,10 @@ public class CreateIndexClauseTest {
     public void testNormal() throws AnalysisException {
         CreateIndexClause clause = new CreateIndexClause(
                 new TableName(InternalCatalog.INTERNAL_CATALOG_NAME, "db", 
"table"),
-                new IndexDef("index1", false, Lists.newArrayList("col1"), 
IndexDef.IndexType.BITMAP, null, "balabala"),
+                new IndexDef("index1", false, Lists.newArrayList("col1"), 
IndexDef.IndexType.INVERTED, null, "balabala"),
                 false);
         clause.analyze(analyzer);
-        Assert.assertEquals("CREATE INDEX index1 ON `db`.`table` (`col1`) 
USING BITMAP COMMENT 'balabala'",
+        Assert.assertEquals("CREATE INDEX index1 ON `db`.`table` (`col1`) 
USING INVERTED COMMENT 'balabala'",
                 clause.toSql());
 
     }
diff --git 
a/fe/fe-core/src/test/java/org/apache/doris/analysis/IndexDefTest.java 
b/fe/fe-core/src/test/java/org/apache/doris/analysis/IndexDefTest.java
index b1072e41fa5..a4eeec679b2 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/analysis/IndexDefTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/IndexDefTest.java
@@ -29,7 +29,7 @@ public class IndexDefTest {
 
     @Before
     public void setUp() throws Exception {
-        def = new IndexDef("index1", false, Lists.newArrayList("col1"), 
IndexDef.IndexType.BITMAP, null, "balabala");
+        def = new IndexDef("index1", false, Lists.newArrayList("col1"), 
IndexDef.IndexType.INVERTED, null, "balabala");
     }
 
     @Test
@@ -46,7 +46,7 @@ public class IndexDefTest {
                             + 
"x1xxxxxxxxxxxxxxxxxindex1xxxxxxxxxxxxxxxxxindex1xxxxxxxxxxxxxxxxxindex1xxxxxxxxxxxxx"
                             + 
"xxxxindex1xxxxxxxxxxxxxxxxxindex1xxxxxxxxxxxxxxxxxindex1xxxxxxxxxxxxxxxxxindex1xxxxx"
                             + "xxxxxxxxxxxxindex1xxxxxxxxxxxxxxxxx", false,
-                    Lists.newArrayList("col1"), IndexDef.IndexType.BITMAP, 
null,
+                    Lists.newArrayList("col1"), IndexDef.IndexType.INVERTED, 
null,
                     "balabala");
             def.analyze();
             Assert.fail("No exception throws.");
@@ -54,7 +54,7 @@ public class IndexDefTest {
             Assert.assertTrue(e instanceof AnalysisException);
         }
         try {
-            def = new IndexDef("", false, Lists.newArrayList("col1"), 
IndexDef.IndexType.BITMAP, null, "balabala");
+            def = new IndexDef("", false, Lists.newArrayList("col1"), 
IndexDef.IndexType.INVERTED, null, "balabala");
             def.analyze();
             Assert.fail("No exception throws.");
         } catch (AnalysisException e) {
@@ -64,8 +64,8 @@ public class IndexDefTest {
 
     @Test
     public void toSql() {
-        Assert.assertEquals("INDEX index1 (`col1`) USING BITMAP COMMENT 
'balabala'", def.toSql());
-        Assert.assertEquals("INDEX index1 ON table1 (`col1`) USING BITMAP 
COMMENT 'balabala'",
+        Assert.assertEquals("INDEX index1 (`col1`) USING INVERTED COMMENT 
'balabala'", def.toSql());
+        Assert.assertEquals("INDEX index1 ON table1 (`col1`) USING INVERTED 
COMMENT 'balabala'",
                 def.toSql("table1"));
     }
 }
diff --git 
a/fe/fe-core/src/test/java/org/apache/doris/persist/TableAddOrDropColumnsInfoTest.java
 
b/fe/fe-core/src/test/java/org/apache/doris/persist/TableAddOrDropColumnsInfoTest.java
index 1c78f24cbf3..0e04bddd681 100644
--- 
a/fe/fe-core/src/test/java/org/apache/doris/persist/TableAddOrDropColumnsInfoTest.java
+++ 
b/fe/fe-core/src/test/java/org/apache/doris/persist/TableAddOrDropColumnsInfoTest.java
@@ -65,7 +65,7 @@ public class TableAddOrDropColumnsInfoTest {
         indexSchemaMap.put(tableId, fullSchema);
 
         List<Index> indexes = Lists.newArrayList(
-                new Index(0, "index", Lists.newArrayList("testCol1"), 
IndexDef.IndexType.BITMAP, null, "xxxxxx"));
+                new Index(0, "index", Lists.newArrayList("testCol1"), 
IndexDef.IndexType.INVERTED, null, "xxxxxx"));
 
         TableAddOrDropColumnsInfo tableAddOrDropColumnsInfo1 = new 
TableAddOrDropColumnsInfo("", dbId, tableId,
                 indexSchemaMap, indexes, jobId);
diff --git a/regression-test/data/index_p0/test_bitmap_index.out 
b/regression-test/data/index_p0/test_bitmap_index.out
index 1ee61ff37e9..b2654048440 100644
--- a/regression-test/data/index_p0/test_bitmap_index.out
+++ b/regression-test/data/index_p0/test_bitmap_index.out
@@ -65,9 +65,9 @@ v1    INT     Yes     false   \N      NONE
 create_time    DATETIME        No      true    \N      
 vid    VARCHAR(64)     No      true    \N      
 report_time    DATETIME        Yes     true    \N      
-block_version  INT     Yes     false   \N      REPLACE
-vehicle_mode   INT     Yes     false   \N      REPLACE
-usage_mode     INT     Yes     false   \N      REPLACE
+block_version  INT     Yes     false   \N      NONE
+vehicle_mode   INT     Yes     false   \N      NONE
+usage_mode     INT     Yes     false   \N      NONE
 
 -- !sql --
 2
diff --git 
a/regression-test/suites/datatype_p0/decimalv3/test_decimal256_index.groovy 
b/regression-test/suites/datatype_p0/decimalv3/test_decimal256_index.groovy
index 8f31323436d..f0a1b89b989 100644
--- a/regression-test/suites/datatype_p0/decimalv3/test_decimal256_index.groovy
+++ b/regression-test/suites/datatype_p0/decimalv3/test_decimal256_index.groovy
@@ -21,6 +21,7 @@ suite("test_decimal256_index") {
 
     def delta_time = 100
     def wait_for_latest_op_on_table_finish = { table_name, OpTimeout ->
+        useTime = 0
         for(int t = delta_time; t <= OpTimeout; t += delta_time){
             alter_res = sql """SHOW ALTER TABLE COLUMN WHERE TableName = 
"${table_name}" ORDER BY CreateTime DESC LIMIT 1;"""
             alter_res = alter_res.toString()
@@ -116,6 +117,7 @@ suite("test_decimal256_index") {
     sql "sync"
 
     sql """CREATE INDEX k2_bitmap_index ON test_decimal256_bitmap_index(k2) 
USING BITMAP;"""
+    sql """BUILD INDEX k2_bitmap_index ON test_decimal256_bitmap_index;"""
     wait_for_latest_op_on_table_finish("test_decimal256_bitmap_index", 3000);
 
     qt_sql_bitmap_index_select_all """
diff --git a/regression-test/suites/datatype_p0/scalar_types/load.groovy 
b/regression-test/suites/datatype_p0/scalar_types/load.groovy
index f360097b98b..43f6c9bffff 100644
--- a/regression-test/suites/datatype_p0/scalar_types/load.groovy
+++ b/regression-test/suites/datatype_p0/scalar_types/load.groovy
@@ -303,61 +303,6 @@ suite("test_scalar_types_load", "p0") {
             `c_char`, `c_varchar`, `c_string` FROM tbl_scalar_types_dup"""
 
 
-    // define unique key table2 disable mow
-    testTable = "tbl_scalar_types_unique2_bitmapindex"
-    sql "DROP TABLE IF EXISTS ${testTable}"
-    sql """
-        CREATE TABLE IF NOT EXISTS ${testTable} (
-            `c_datetimev2` datetimev2(0) NULL,
-            `c_bigint` bigint(20) NULL,
-            `c_decimalv3` decimalv3(20, 3) NULL,
-            `c_bool` boolean NULL,
-            `c_tinyint` tinyint(4) NULL,
-            `c_smallint` smallint(6) NULL,
-            `c_int` int(11) NULL,
-            `c_largeint` largeint(40) NULL,
-            `c_float` float NULL,
-            `c_double` double NULL,
-            `c_decimal` decimal(20, 3) NULL,
-            `c_date` datev1 NULL,
-            `c_datetime` datetimev1 NULL,
-            `c_datev2` datev2 NULL,
-            `c_char` char(15) NULL,
-            `c_varchar` varchar(100) NULL,
-            `c_string` text NULL,
-            INDEX idx_c_bool (c_bool) USING BITMAP,
-            INDEX idx_c_tinyint (c_tinyint) USING BITMAP,
-            INDEX idx_c_smallint (c_smallint) USING BITMAP,
-            INDEX idx_c_int (c_int) USING BITMAP,
-            INDEX idx_c_bigint (c_bigint) USING BITMAP,
-            INDEX idx_c_largeint (c_largeint) USING BITMAP,
-            INDEX idx_c_decimal (c_decimal) USING BITMAP,
-            INDEX idx_c_decimalv3 (c_decimalv3) USING BITMAP,
-            INDEX idx_c_date (c_date) USING BITMAP,
-            INDEX idx_c_datetime (c_datetime) USING BITMAP,
-            INDEX idx_c_datev2 (c_datev2) USING BITMAP,
-            INDEX idx_c_datetimev2 (c_datetimev2) USING BITMAP,
-            INDEX idx_c_char (c_char) USING BITMAP,
-            INDEX idx_c_varchar (c_varchar) USING BITMAP,
-            INDEX idx_c_string (c_string) USING BITMAP
-        ) ENGINE=OLAP
-        UNIQUE KEY(`c_datetimev2`, `c_bigint`, `c_decimalv3`)
-        COMMENT 'OLAP'
-        DISTRIBUTED BY HASH(`c_bigint`) BUCKETS 10
-        PROPERTIES("replication_num" = "1", "enable_unique_key_merge_on_write" 
= "false");
-        """
-
-    // insert data into unique key table1 2 times
-    sql """INSERT INTO ${testTable} SELECT `c_datetimev2`, `c_bigint`, 
`c_decimalv3`,
-            `c_bool`, `c_tinyint`, `c_smallint`, `c_int`, `c_largeint`,
-            `c_float`, `c_double`, `c_decimal`, `c_date`, `c_datetime`, 
`c_datev2`,
-            `c_char`, `c_varchar`, `c_string` FROM tbl_scalar_types_dup"""
-    sql """INSERT INTO ${testTable} SELECT `c_datetimev2`, `c_bigint`, 
`c_decimalv3`,
-            `c_bool`, `c_tinyint`, `c_smallint`, `c_int`, `c_largeint`,
-            `c_float`, `c_double`, `c_decimal`, `c_date`, `c_datetime`, 
`c_datev2`,
-            `c_char`, `c_varchar`, `c_string` FROM tbl_scalar_types_dup"""
-
-
     // define dup key table with index
     testTable = "tbl_scalar_types_dup_inverted_index"
     sql "DROP TABLE IF EXISTS ${testTable}"
diff --git 
a/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q01_bool.sql
 
b/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q01_bool.sql
deleted file mode 100644
index 3e384181688..00000000000
--- 
a/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q01_bool.sql
+++ /dev/null
@@ -1 +0,0 @@
-SELECT count() FROM tbl_scalar_types_unique2_bitmapindex WHERE c_bool = 1; 
diff --git 
a/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q02_tinyint.sql
 
b/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q02_tinyint.sql
deleted file mode 100644
index ed75ebca457..00000000000
--- 
a/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q02_tinyint.sql
+++ /dev/null
@@ -1 +0,0 @@
-SELECT count() FROM tbl_scalar_types_unique2_bitmapindex WHERE c_tinyint = 14; 
diff --git 
a/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q03_smallint.sql
 
b/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q03_smallint.sql
deleted file mode 100644
index faa2159f0dd..00000000000
--- 
a/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q03_smallint.sql
+++ /dev/null
@@ -1 +0,0 @@
-SELECT * FROM tbl_scalar_types_unique2_bitmapindex WHERE c_smallint = 12321 
ORDER BY c_bigint, c_largeint; 
diff --git 
a/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q04_int.sql
 
b/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q04_int.sql
deleted file mode 100644
index db82b79873a..00000000000
--- 
a/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q04_int.sql
+++ /dev/null
@@ -1 +0,0 @@
-SELECT * FROM tbl_scalar_types_unique2_bitmapindex WHERE c_int = -16441 ORDER 
BY c_bigint, c_largeint; 
diff --git 
a/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q05_bigint.sql
 
b/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q05_bigint.sql
deleted file mode 100644
index 9ef4811f62a..00000000000
--- 
a/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q05_bigint.sql
+++ /dev/null
@@ -1 +0,0 @@
-SELECT * FROM tbl_scalar_types_unique2_bitmapindex WHERE c_bigint = 859063837 
ORDER BY c_bigint, c_largeint; 
diff --git 
a/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q06_largeint.sql
 
b/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q06_largeint.sql
deleted file mode 100644
index 2a6b48064c2..00000000000
--- 
a/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q06_largeint.sql
+++ /dev/null
@@ -1 +0,0 @@
-SELECT * FROM tbl_scalar_types_unique2_bitmapindex WHERE c_largeint = 
1524137702 ORDER BY c_bigint, c_largeint; 
diff --git 
a/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q07_float.sql
 
b/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q07_float.sql
deleted file mode 100644
index 1ae3d82f151..00000000000
--- 
a/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q07_float.sql
+++ /dev/null
@@ -1 +0,0 @@
-SELECT * FROM tbl_scalar_types_unique2_bitmapindex WHERE c_float = -13023.051 
ORDER BY c_bigint, c_largeint; 
diff --git 
a/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q08_double.sql
 
b/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q08_double.sql
deleted file mode 100644
index 8c21bc08b79..00000000000
--- 
a/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q08_double.sql
+++ /dev/null
@@ -1 +0,0 @@
-SELECT * FROM tbl_scalar_types_unique2_bitmapindex WHERE c_double = 
-679666086.055166 ORDER BY c_bigint, c_largeint; 
diff --git 
a/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q09_decimal.sql
 
b/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q09_decimal.sql
deleted file mode 100644
index 9fd1e832bed..00000000000
--- 
a/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q09_decimal.sql
+++ /dev/null
@@ -1 +0,0 @@
-SELECT * FROM tbl_scalar_types_unique2_bitmapindex WHERE c_decimal = 
5355625357307892.981 ORDER BY c_bigint, c_largeint; 
diff --git 
a/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q10_decimalv3.sql
 
b/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q10_decimalv3.sql
deleted file mode 100644
index ee676941451..00000000000
--- 
a/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q10_decimalv3.sql
+++ /dev/null
@@ -1 +0,0 @@
-SELECT * FROM tbl_scalar_types_unique2_bitmapindex WHERE c_decimalv3 = 
89599956401481176.347 ORDER BY c_bigint, c_largeint; 
diff --git 
a/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q11_date.sql
 
b/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q11_date.sql
deleted file mode 100644
index 7f5d383765f..00000000000
--- 
a/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q11_date.sql
+++ /dev/null
@@ -1 +0,0 @@
-SELECT * FROM tbl_scalar_types_unique2_bitmapindex WHERE c_date = '2022-10-09' 
ORDER BY c_bigint, c_largeint; 
diff --git 
a/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q12_datetime.sql
 
b/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q12_datetime.sql
deleted file mode 100644
index a1d7728c621..00000000000
--- 
a/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q12_datetime.sql
+++ /dev/null
@@ -1 +0,0 @@
-SELECT * FROM tbl_scalar_types_unique2_bitmapindex WHERE c_datetime = 
'2022-07-31 12:07:00' ORDER BY c_bigint, c_largeint; 
diff --git 
a/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q13_datev2.sql
 
b/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q13_datev2.sql
deleted file mode 100644
index eee7b111084..00000000000
--- 
a/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q13_datev2.sql
+++ /dev/null
@@ -1 +0,0 @@
-SELECT * FROM tbl_scalar_types_unique2_bitmapindex WHERE c_datev2 = 
'2022-03-06' ORDER BY c_bigint, c_largeint; 
diff --git 
a/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q14_datetimev2.sql
 
b/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q14_datetimev2.sql
deleted file mode 100644
index 83b86dadbf2..00000000000
--- 
a/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q14_datetimev2.sql
+++ /dev/null
@@ -1 +0,0 @@
-SELECT * FROM tbl_scalar_types_unique2_bitmapindex WHERE c_datetimev2 = 
'2022-11-18 06:05:56' ORDER BY c_bigint, c_largeint; 
diff --git 
a/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q15_char.sql
 
b/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q15_char.sql
deleted file mode 100644
index 67486dde69f..00000000000
--- 
a/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q15_char.sql
+++ /dev/null
@@ -1 +0,0 @@
-SELECT * FROM tbl_scalar_types_unique2_bitmapindex WHERE c_char = 
'202.171.74.217' ORDER BY c_bigint, c_largeint; 
diff --git 
a/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q16_varchar.sql
 
b/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q16_varchar.sql
deleted file mode 100644
index 677bc5614a8..00000000000
--- 
a/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q16_varchar.sql
+++ /dev/null
@@ -1 +0,0 @@
-SELECT * FROM tbl_scalar_types_unique2_bitmapindex WHERE c_varchar = 
'mod...@feedmix.biz' ORDER BY c_bigint, c_largeint; 
diff --git 
a/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q17_string.sql
 
b/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q17_string.sql
deleted file mode 100644
index b02fb1d72e8..00000000000
--- 
a/regression-test/suites/datatype_p0/scalar_types/sql/unique2_bitmap_index_q17_string.sql
+++ /dev/null
@@ -1 +0,0 @@
-SELECT * FROM tbl_scalar_types_unique2_bitmapindex WHERE c_string = 'Reinke 
Junction 63' ORDER BY c_bigint, c_largeint; 
diff --git a/regression-test/suites/index_p0/test_bitmap_index.groovy 
b/regression-test/suites/index_p0/test_bitmap_index.groovy
index db442f7fec2..b6bd7082a69 100644
--- a/regression-test/suites/index_p0/test_bitmap_index.groovy
+++ b/regression-test/suites/index_p0/test_bitmap_index.groovy
@@ -178,7 +178,7 @@ suite("test_bitmap_index") {
     }
     test{
         sql "ALTER TABLE ${tbName2} ADD INDEX index16 (v1) USING BITMAP;"
-        exception "errCode = 2, detailMessage = BITMAP index only used in 
columns of DUP_KEYS/UNIQUE_KEYS table"
+        exception "errCode = 2, detailMessage = INVERTED index only used in 
columns of DUP_KEYS/UNIQUE_KEYS MOW table or key columns of all table. invalid 
index: index16"
     }
 
     sql "insert into ${tbName2} 
values(1,1,1,1,'1','1','2022-05-31','2022-05-31 
10:00:00',1,1.0,1,'2022-05-31','2022-05-31 10:00:00.111111','2022-05-31 
10:00:00.111111','2022-05-31 10:00:00.111111',1);"
@@ -340,7 +340,7 @@ suite("test_bitmap_index") {
                 "replication_allocation" = "tag.location.default: 1",
                 "is_being_synced" = "false",
                 "storage_format" = "V2",
-                "enable_unique_key_merge_on_write" = "false",
+                "enable_unique_key_merge_on_write" = "true",
                 "light_schema_change" = "true",
                 "disable_auto_compaction" = "false",
                 "enable_single_replica_compaction" = "false"
diff --git a/regression-test/suites/index_p0/test_index_meta.groovy 
b/regression-test/suites/index_p0/test_index_meta.groovy
index 2a6f75870c2..75ca902649b 100644
--- a/regression-test/suites/index_p0/test_index_meta.groovy
+++ b/regression-test/suites/index_p0/test_index_meta.groovy
@@ -47,7 +47,7 @@ suite("index_meta", "p0") {
                 `id` INT NULL,
                 `name` STRING NULL,
                 `description` STRING NULL,
-                INDEX idx_id (`id`) USING BITMAP COMMENT 'index for id',
+                INDEX idx_id (`id`) USING INVERTED COMMENT 'index for id',
                 INDEX idx_name (`name`) USING INVERTED 
PROPERTIES("parser"="none") COMMENT 'index for name'
             )
             DUPLICATE KEY(`id`)
@@ -64,7 +64,7 @@ suite("index_meta", "p0") {
     assertEquals(show_result.size(), 2)
     assertEquals(show_result[0][2], "idx_id")
     assertEquals(show_result[0][4], "id")
-    assertEquals(show_result[0][10], "BITMAP")
+    assertEquals(show_result[0][10], "INVERTED")
     assertEquals(show_result[0][11], "'index for id'")
     assertEquals(show_result[0][12], "")
     assertEquals(show_result[1][2], "idx_name")
@@ -83,7 +83,7 @@ suite("index_meta", "p0") {
     assertEquals(show_result.size(), 3)
     assertEquals(show_result[0][2], "idx_id")
     assertEquals(show_result[0][4], "id")
-    assertEquals(show_result[0][10], "BITMAP")
+    assertEquals(show_result[0][10], "INVERTED")
     assertEquals(show_result[0][11], "'index for id'")
     assertEquals(show_result[0][12], "")
     assertEquals(show_result[1][2], "idx_name")
@@ -107,7 +107,7 @@ suite("index_meta", "p0") {
     assertEquals(show_result.size(), 2)
     assertEquals(show_result[0][2], "idx_id")
     assertEquals(show_result[0][4], "id")
-    assertEquals(show_result[0][10], "BITMAP")
+    assertEquals(show_result[0][10], "INVERTED")
     assertEquals(show_result[0][11], "'index for id'")
     assertEquals(show_result[0][12], "")
     assertEquals(show_result[1][2], "idx_desc")
@@ -126,7 +126,7 @@ suite("index_meta", "p0") {
     assertEquals(show_result.size(), 3)
     assertEquals(show_result[0][2], "idx_id")
     assertEquals(show_result[0][4], "id")
-    assertEquals(show_result[0][10], "BITMAP")
+    assertEquals(show_result[0][10], "INVERTED")
     assertEquals(show_result[0][11], "'index for id'")
     assertEquals(show_result[0][12], "")
     assertEquals(show_result[1][2], "idx_desc")
diff --git 
a/regression-test/suites/inverted_index_p0/test_add_drop_index.groovy 
b/regression-test/suites/inverted_index_p0/test_add_drop_index.groovy
index 9bdff40418d..540539dbf2f 100644
--- a/regression-test/suites/inverted_index_p0/test_add_drop_index.groovy
+++ b/regression-test/suites/inverted_index_p0/test_add_drop_index.groovy
@@ -61,7 +61,7 @@ suite("test_add_drop_index", "inverted_index"){
 
     // case1: create index for int colume
     // case1.0 create index
-    sql "create index age_idx on ${indexTbName1}(age) using inverted"
+    sql "create index age_idx on ${indexTbName1}(tearchComment) using inverted"
     wait_for_latest_op_on_table_finish(indexTbName1, timeout)
 
     def show_result = sql "show index from ${indexTbName1}"
@@ -71,7 +71,7 @@ suite("test_add_drop_index", "inverted_index"){
     // case1.1 create duplicate same index for one colume with same name
     def create_dup_index_result = "fail"
     try {
-        sql "create index age_idx on ${indexTbName1}(`age`) using inverted"
+        sql "create index age_idx on ${indexTbName1}(`tearchComment`) using 
inverted"
         create_dup_index_result = "success"
     } catch(Exception ex) {
         logger.info("create same duplicate and same name index,  result: " + 
ex)
@@ -79,14 +79,14 @@ suite("test_add_drop_index", "inverted_index"){
     assertEquals(create_dup_index_result, "fail")
     // case1.2 create duplicate same index for one colume with different name
     try {
-        sql "create index age_idx_diff on ${indexTbName1}(`age`) using 
inverted"
+        sql "create index age_idx_diff on ${indexTbName1}(`tearchComment`) 
using inverted"
         create_dup_index_result = "success"
     } catch(Exception ex) {
         logger.info("create same duplicate with different name index,  result: 
" + ex)
     }
     assertEquals(create_dup_index_result, "fail")
     // case1.3 create duplicate different index for one colume with different 
name
-    sql "create index age_idx_diff on ${indexTbName1}(`age`) using bitmap"
+    sql "create index age_idx_diff on ${indexTbName1}(`tearchComment`) using 
NGRAM_BF"
     wait_for_latest_op_on_table_finish(indexTbName1, timeout)
     show_result = sql "show index from ${indexTbName1}"
     logger.info("show index from " + indexTbName1 + " result: " + show_result)
@@ -124,10 +124,10 @@ suite("test_add_drop_index", "inverted_index"){
     // case3: create string inverted index for int colume
     def create_string_index_on_int_colume_result = "fail"
     try {
-        syntax_error = sql "create index age_idx on ${indexTbName1}(`age`) 
USING INVERTED PROPERTIES("parser"="standard")"
+        syntax_error = sql "create index age_idx on 
${indexTbName1}(`tearchComment`) USING INVERTED PROPERTIES("parser"="standard")"
         create_string_index_on_int_colume_result = "success"
     } catch(Exception ex) {
-        logger.info("sql: create index age_idx on" + indexTbName1 + "(`age`) 
USING INVERTED PROPERTIES(\"parser\"=\"standard\")")
+        logger.info("sql: create index age_idx on" + indexTbName1 + 
"(`tearchComment`) USING INVERTED PROPERTIES(\"parser\"=\"standard\")")
         logger.info("create string inverted index for int colume, result: " + 
ex)
     }
     assertEquals(create_string_index_on_int_colume_result, "fail")
diff --git a/regression-test/suites/inverted_index_p0/test_bitmap_index.groovy 
b/regression-test/suites/inverted_index_p0/test_bitmap_index.groovy
index 23944288cd7..29289a10e09 100644
--- a/regression-test/suites/inverted_index_p0/test_bitmap_index.groovy
+++ b/regression-test/suites/inverted_index_p0/test_bitmap_index.groovy
@@ -158,7 +158,7 @@ suite("test_bitmap_index", "inverted_index") {
     }
     test{
         sql "ALTER TABLE ${tbName2} ADD INDEX index12 (v1) USING BITMAP;"
-        exception "errCode = 2, detailMessage = BITMAP index only used in 
columns of DUP_KEYS/UNIQUE_KEYS table or key columns of AGG_KEYS table. invalid 
column: v1"
+        exception "errCode = 2, detailMessage = INVERTED index only used in 
columns of DUP_KEYS/UNIQUE_KEYS MOW table or key columns of all table. invalid 
index: index12"
     }
 
     sql "insert into ${tbName2} 
values(1,1,1,1,'1','1','2022-05-31','2022-05-31 10:00:00',1,1.0,1,1);"
diff --git 
a/regression-test/suites/inverted_index_p0/test_create_index_1.groovy 
b/regression-test/suites/inverted_index_p0/test_create_index_1.groovy
index 49bd5033dd4..e2ba1609dbc 100644
--- a/regression-test/suites/inverted_index_p0/test_create_index_1.groovy
+++ b/regression-test/suites/inverted_index_p0/test_create_index_1.groovy
@@ -120,8 +120,7 @@ suite("test_create_index_1", "inverted_index"){
                 registDate datetime NULL,
                 studentInfo char(100),
                 tearchComment string,
-                INDEX age_idx_1(age) USING BITMAP COMMENT 'age index',
-                INDEX age_idx_2(age) USING INVERTED COMMENT 'age index'
+                INDEX age_idx_1(age) USING INVERTED COMMENT 'age index'
             )
             DUPLICATE KEY(`name`)
             DISTRIBUTED BY HASH(`name`) BUCKETS 10
@@ -130,25 +129,23 @@ suite("test_create_index_1", "inverted_index"){
 
     def show_result = sql "show index from ${indexTbName1}"
     logger.info("show index from " + indexTbName1 + " result: " + show_result)
-    assertEquals(show_result.size(), 2)
+    assertEquals(show_result.size(), 1)
     assertEquals(show_result[0][2], "age_idx_1")
-    assertEquals(show_result[1][2], "age_idx_2")
     
     // drop index
     sql "drop index age_idx_1 on ${indexTbName1}"
     wait_for_latest_op_on_table_finish(indexTbName1, timeout)
-    sql "drop index age_idx_2 on ${indexTbName1}"
     show_result = sql "show index from ${indexTbName1}"
     assertEquals(show_result.size(), 0)
 
     // case 2: alter add index
-    sql "create index age_idx on ${indexTbName1}(age) using inverted"
+    sql "create index studentInfo_idx on ${indexTbName1}(studentInfo) using 
inverted"
     show_result = sql "show index from ${indexTbName1}"
     logger.info("show index from " + indexTbName1 + " result: " + show_result)
-    assertEquals(show_result[0][2], "age_idx")
+    assertEquals(show_result[0][2], "studentInfo_idx")
     // case 2.1: create duplicate same index for one colume with same name
     try {
-        sql "create index age_idx on ${indexTbName1}(`age`) using inverted"
+        sql "create index studentInfo_idx on ${indexTbName1}(`studentInfo`) 
using inverted"
         create_dup_index_result = "success"
     } catch(Exception ex) {
         logger.info("create duplicate same index for one colume with same 
name, result: " + ex)
@@ -156,7 +153,7 @@ suite("test_create_index_1", "inverted_index"){
 
     // case 2.2: create duplicate same index for one colume with different name
     try {
-        sql "create index age_idx_2 on ${indexTbName1}(`age`) using inverted"
+        sql "create index studentInfo_idx_2 on ${indexTbName1}(`studentInfo`) 
using inverted"
         create_dup_index_result = "success"
     } catch(Exception ex) {
         logger.info("create duplicate same index for one colume with different 
name, result: " + ex)
@@ -164,19 +161,19 @@ suite("test_create_index_1", "inverted_index"){
 
     // case 2.3: create duplicate different index for one colume with same name
     try {
-        sql "create index age_idx on ${indexTbName1}(`age`) using bitmap"
+        sql "create index studentInfo_idx on ${indexTbName1}(`studentInfo`) 
using NGRAM_BF"
         create_dup_index_result = "success"
     } catch(Exception ex) {
         logger.info("create duplicate different index for one colume with same 
name, result: " + ex)
     }
 
     // 2.4: create duplicate different index for one colume with different name
-    sql "create index age_idx_2 on ${indexTbName1}(`age`) using bitmap"
+    sql "create index studentInfo_idx_2 on ${indexTbName1}(`studentInfo`) 
using NGRAM_BF"
     wait_for_latest_op_on_table_finish(indexTbName1, timeout)
 
     show_result = sql "show index from ${indexTbName1}"
     logger.info("show index from " + indexTbName1 + " result: " + show_result)
     assertEquals(show_result.size(), 2)
-    assertEquals(show_result[0][2], "age_idx")
-    assertEquals(show_result[1][2], "age_idx_2")
+    assertEquals(show_result[0][2], "studentInfo_idx")
+    assertEquals(show_result[1][2], "studentInfo_idx_2")
 }
diff --git 
a/regression-test/suites/inverted_index_p0/test_inverted_index.groovy 
b/regression-test/suites/inverted_index_p0/test_inverted_index.groovy
index f4280c31163..3cb9cc76fed 100644
--- a/regression-test/suites/inverted_index_p0/test_inverted_index.groovy
+++ b/regression-test/suites/inverted_index_p0/test_inverted_index.groovy
@@ -178,7 +178,7 @@ suite("test_inverted_index", "inverted_index") {
     }
     test{
         sql "ALTER TABLE ${tbName2} ADD INDEX index16 (v1) USING INVERTED;"
-        exception "errCode = 2, detailMessage = INVERTED index only used in 
columns of DUP_KEYS table or UNIQUE_KEYS table with merge_on_write enabled or 
key columns of AGG_KEYS table. invalid column: v1"
+        exception "errCode = 2, detailMessage = INVERTED index only used in 
columns of DUP_KEYS/UNIQUE_KEYS MOW table or key columns of all table. invalid 
index: index16"
     }
 
     sql "insert into ${tbName2} 
values(1,1,1,1,'1','1','2022-05-31','2022-05-31 
10:00:00',1,1.0,1,'2022-05-31','2022-05-31 10:00:00.111111','2022-05-31 
10:00:00.111111','2022-05-31 10:00:00.111111',1);"
diff --git a/regression-test/suites/load_p0/broker_load/ddl/mow_tbl_basic.sql 
b/regression-test/suites/load_p0/broker_load/ddl/mow_tbl_basic.sql
index dbb45d263f0..e06f648580c 100644
--- a/regression-test/suites/load_p0/broker_load/ddl/mow_tbl_basic.sql
+++ b/regression-test/suites/load_p0/broker_load/ddl/mow_tbl_basic.sql
@@ -43,11 +43,6 @@ CREATE TABLE mow_tbl_basic
     INDEX idx_inverted_k113 (`k13`) USING INVERTED,
     INDEX idx_inverted_k114 (`k14`) USING INVERTED,
     INDEX idx_inverted_k117 (`k17`) USING INVERTED PROPERTIES("parser" = 
"english"),
-    INDEX idx_bitmap_k104 (`k05`) USING BITMAP,
-    INDEX idx_bitmap_k110 (`k11`) USING BITMAP,
-    INDEX idx_bitmap_k113 (`k13`) USING BITMAP,
-    INDEX idx_bitmap_k114 (`k14`) USING BITMAP,
-    INDEX idx_bitmap_k117 (`k17`) USING BITMAP,
     INDEX idx_ngrambf_k115 (`k15`) USING NGRAM_BF PROPERTIES("gram_size"="3", 
"bf_size"="256"),
     INDEX idx_ngrambf_k116 (`k16`) USING NGRAM_BF PROPERTIES("gram_size"="3", 
"bf_size"="256"),
     INDEX idx_ngrambf_k117 (`k17`) USING NGRAM_BF PROPERTIES("gram_size"="3", 
"bf_size"="256")
diff --git 
a/regression-test/suites/load_p0/routine_load/ddl/mow_tbl_basic_create.sql 
b/regression-test/suites/load_p0/routine_load/ddl/mow_tbl_basic_create.sql
index c2398b9d038..9a15dac0418 100644
--- a/regression-test/suites/load_p0/routine_load/ddl/mow_tbl_basic_create.sql
+++ b/regression-test/suites/load_p0/routine_load/ddl/mow_tbl_basic_create.sql
@@ -43,11 +43,6 @@ CREATE TABLE routine_load_mow_tbl_basic
     INDEX idx_inverted_k113 (`k13`) USING INVERTED,
     INDEX idx_inverted_k114 (`k14`) USING INVERTED,
     INDEX idx_inverted_k117 (`k17`) USING INVERTED PROPERTIES("parser" = 
"english"),
-    INDEX idx_bitmap_k104 (`k05`) USING BITMAP,
-    INDEX idx_bitmap_k110 (`k11`) USING BITMAP,
-    INDEX idx_bitmap_k113 (`k13`) USING BITMAP,
-    INDEX idx_bitmap_k114 (`k14`) USING BITMAP,
-    INDEX idx_bitmap_k117 (`k17`) USING BITMAP,
     INDEX idx_ngrambf_k115 (`k15`) USING NGRAM_BF PROPERTIES("gram_size"="3", 
"bf_size"="256"),
     INDEX idx_ngrambf_k116 (`k16`) USING NGRAM_BF PROPERTIES("gram_size"="3", 
"bf_size"="256"),
     INDEX idx_ngrambf_k117 (`k17`) USING NGRAM_BF PROPERTIES("gram_size"="3", 
"bf_size"="256")
diff --git 
a/regression-test/suites/load_p0/stream_load/ddl/mow_tbl_basic_create.sql 
b/regression-test/suites/load_p0/stream_load/ddl/mow_tbl_basic_create.sql
index b64602b2e7f..d7421817002 100644
--- a/regression-test/suites/load_p0/stream_load/ddl/mow_tbl_basic_create.sql
+++ b/regression-test/suites/load_p0/stream_load/ddl/mow_tbl_basic_create.sql
@@ -43,11 +43,6 @@ CREATE TABLE stream_load_mow_tbl_basic
     INDEX idx_inverted_k113 (`k13`) USING INVERTED,
     INDEX idx_inverted_k114 (`k14`) USING INVERTED,
     INDEX idx_inverted_k117 (`k17`) USING INVERTED PROPERTIES("parser" = 
"english"),
-    INDEX idx_bitmap_k104 (`k05`) USING BITMAP,
-    INDEX idx_bitmap_k110 (`k11`) USING BITMAP,
-    INDEX idx_bitmap_k113 (`k13`) USING BITMAP,
-    INDEX idx_bitmap_k114 (`k14`) USING BITMAP,
-    INDEX idx_bitmap_k117 (`k17`) USING BITMAP,
     INDEX idx_ngrambf_k115 (`k15`) USING NGRAM_BF PROPERTIES("gram_size"="3", 
"bf_size"="256"),
     INDEX idx_ngrambf_k116 (`k16`) USING NGRAM_BF PROPERTIES("gram_size"="3", 
"bf_size"="256"),
     INDEX idx_ngrambf_k117 (`k17`) USING NGRAM_BF PROPERTIES("gram_size"="3", 
"bf_size"="256")
diff --git a/regression-test/suites/load_p0/tvf/ddl/mow_tbl_basic_tvf.sql 
b/regression-test/suites/load_p0/tvf/ddl/mow_tbl_basic_tvf.sql
index b34e7749317..b20126a7768 100644
--- a/regression-test/suites/load_p0/tvf/ddl/mow_tbl_basic_tvf.sql
+++ b/regression-test/suites/load_p0/tvf/ddl/mow_tbl_basic_tvf.sql
@@ -43,11 +43,6 @@ CREATE TABLE mow_tbl_basic_tvf
     INDEX idx_inverted_k113 (`k13`) USING INVERTED,
     INDEX idx_inverted_k114 (`k14`) USING INVERTED,
     INDEX idx_inverted_k117 (`k17`) USING INVERTED PROPERTIES("parser" = 
"english"),
-    INDEX idx_bitmap_k104 (`k05`) USING BITMAP,
-    INDEX idx_bitmap_k110 (`k11`) USING BITMAP,
-    INDEX idx_bitmap_k113 (`k13`) USING BITMAP,
-    INDEX idx_bitmap_k114 (`k14`) USING BITMAP,
-    INDEX idx_bitmap_k117 (`k17`) USING BITMAP,
     INDEX idx_ngrambf_k115 (`k15`) USING NGRAM_BF PROPERTIES("gram_size"="3", 
"bf_size"="256"),
     INDEX idx_ngrambf_k116 (`k16`) USING NGRAM_BF PROPERTIES("gram_size"="3", 
"bf_size"="256"),
     INDEX idx_ngrambf_k117 (`k17`) USING NGRAM_BF PROPERTIES("gram_size"="3", 
"bf_size"="256")
diff --git 
a/regression-test/suites/segcompaction_p2/test_segcompaction_unique_keys_index.groovy
 
b/regression-test/suites/segcompaction_p2/test_segcompaction_unique_keys_index.groovy
index 0cbb33c39c5..4e716f48951 100644
--- 
a/regression-test/suites/segcompaction_p2/test_segcompaction_unique_keys_index.groovy
+++ 
b/regression-test/suites/segcompaction_p2/test_segcompaction_unique_keys_index.groovy
@@ -68,7 +68,7 @@ suite("test_segcompaction_unique_keys_index") {
                 UNIQUE KEY(`col_0`) DISTRIBUTED BY HASH(`col_0`) BUCKETS 1
                 PROPERTIES ( "replication_num" = "1" );
             """
-            exception "INVERTED index only used in columns of DUP_KEYS table 
or UNIQUE_KEYS table with merge_on_write enabled or key columns of AGG_KEYS 
table. invalid column: col_0"
+            exception "INVERTED index only used in columns of 
DUP_KEYS/UNIQUE_KEYS MOW table or key columns of all table. invalid indexName: 
index_col_1"
         }
     } finally {
         try_sql("DROP TABLE IF EXISTS ${tableName}")
diff --git a/regression-test/suites/variant_p0/with_index/load.groovy 
b/regression-test/suites/variant_p0/with_index/load.groovy
index 548c376f36c..f700cdee7cb 100644
--- a/regression-test/suites/variant_p0/with_index/load.groovy
+++ b/regression-test/suites/variant_p0/with_index/load.groovy
@@ -89,12 +89,9 @@ suite("regression_test_variant_with_index", "nonConcurrent"){
     
     sql """insert into var_with_index values(1, '{"a" : 0, "b": 3}', 'hello 
world'), (2, '{"a" : 123}', 'world'),(3, '{"a" : 123}', 'hello world')"""
 
-    // alter bitmap index
-    sql "alter table  var_with_index add index btm_idx (inv) using bitmap ;"
     sql """insert into var_with_index values(1, '{"a" : 0, "b": 3}', 'hello 
world'), (2, '{"a" : 123}', 'world'),(3, '{"a" : 123}', 'hello world')"""
     sql "select * from var_with_index order by k limit 4"
     wait_for_latest_op_on_table_finish(table_name, timeout)
-    sql "alter table  var_with_index add index btm_idxk (k) using bitmap ;"
     sql """insert into var_with_index values(1, '{"a" : 0, "b": 3}', 'hello 
world'), (2, '{"a" : 123}', 'world'),(3, '{"a" : 123}', 'hello world')"""
     sql "select * from var_with_index order by k limit 4"
     wait_for_latest_op_on_table_finish(table_name, timeout)


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to