日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

管理搜索索引

更新時(shí)間:

本文介紹管理搜索索引的操作方法。

前提條件

使用限制

搜索索引僅支持以下數(shù)據(jù)類型:

  • 基礎(chǔ)數(shù)據(jù)類型:BOOLEAN,BYTE,SHORT,INT,LONG,F(xiàn)LOAT,DOUBLE,STRING,CHAR,BINARY,TIMESTAMP。

  • JSON數(shù)據(jù)類型:JSON。

重要

JSON和TIMESTAMP數(shù)據(jù)類型自寬表引擎2.6.5開(kāi)始支持,如需使用請(qǐng)升級(jí)至2.6.5及以上版本。如何查看或升級(jí)當(dāng)前版本,請(qǐng)參見(jiàn)寬表引擎版本說(shuō)明升級(jí)小版本

數(shù)據(jù)準(zhǔn)備

使用搜索索引前,需要先創(chuàng)建目標(biāo)表并寫入測(cè)試數(shù)據(jù)。

  1. 執(zhí)行以下語(yǔ)句創(chuàng)建目標(biāo)表,表名為search_table

    CREATE DATABASE searchindex_db;
    USE searchindex_db;
    CREATE TABLE IF NOT EXISTS search_table (user_id BIGINT, name VARCHAR, age SMALLINT, gender VARCHAR, address VARCHAR, email VARCHAR, city VARCHAR, PRIMARY KEY (user_id));
  2. 執(zhí)行以下語(yǔ)句在目標(biāo)表中寫入四條數(shù)據(jù)。

    UPSERT INTO search_table (user_id,name,age,gender,address,email,city) VALUES (1, '張先生', 18, 'M', '北京市朝陽(yáng)區(qū)', 'a***@example.net', '北京');
    UPSERT INTO search_table (user_id,name,age,gender,address,email,city) VALUES (6, '李先生', 32, 'M', '杭州市余杭區(qū)', 'a***@example.net', '杭州');
    UPSERT INTO search_table (user_id,name,age,gender,address,email,city) VALUES (20, '王先生', 28, 'M', '杭州市濱江區(qū)', 'a***@example.net', '杭州');
    UPSERT INTO search_table (user_id,name,age,gender,address,email,city) VALUES (28, '陳女士', 36, 'F', '深圳市南山區(qū)', 'a***@example.net', '深圳');
  3. 執(zhí)行以下語(yǔ)句查詢目標(biāo)表中的數(shù)據(jù)。

    SELECT * FROM search_table LIMIT 10;

    查詢結(jié)果如下:

    +---------+--------+-----+--------+--------------+------------------+------+
    | user_id |  name  | age | gender |   address    |      email       | city |
    +---------+--------+-----+--------+--------------+------------------+------+
    | 1       | 張先生  | 18  | M      | 北京市朝陽(yáng)區(qū)  | a***@example.net | 北京  |
    | 6       | 李先生  | 32  | M      | 杭州市余杭區(qū)  | a***@example.net | 杭州  |
    | 20      | 王先生  | 28  | M      | 杭州市濱江區(qū)  | a***@example.net | 杭州  |
    | 28      | 陳女士  | 36  | F      | 深圳市南山區(qū)  | a***@example.net | 深圳  |
    +---------+--------+-----+--------+--------------+------------------+------+

管理搜索索引

以上述測(cè)試數(shù)據(jù)為例,創(chuàng)建搜索索引可以滿足以下需求:

  • 對(duì)任意一列都可以進(jìn)行快速檢索。

  • 對(duì)address字段進(jìn)行分詞查詢。

  • 對(duì)email字段進(jìn)行模糊查詢。

  1. 創(chuàng)建搜索索引,關(guān)于創(chuàng)建搜索索引的語(yǔ)法詳情請(qǐng)參見(jiàn)CREATE SEARCH INDEX

    CREATE INDEX IF NOT EXISTS idx USING SEARCH ON search_table (name,age,gender,address(type=text, analyzer=ik),email,city);
    說(shuō)明
    • 執(zhí)行創(chuàng)建搜索索引語(yǔ)句后如果出現(xiàn)The Lindorm Search cluster address is null報(bào)錯(cuò),請(qǐng)確保已開(kāi)通Lindorm實(shí)例的搜索索引服務(wù)。

    • 創(chuàng)建搜索索引語(yǔ)句中,address字段按照ik分詞器進(jìn)行分詞。

    • 每張表只能創(chuàng)建一個(gè)搜索索引。

    • 創(chuàng)建搜索索引時(shí),系統(tǒng)默認(rèn)在后臺(tái)異步構(gòu)建搜索索引,歷史數(shù)據(jù)越多,構(gòu)建所需的時(shí)間越長(zhǎng)。如果您希望同步構(gòu)建搜索索引,請(qǐng)?jiān)趧?chuàng)建搜索索引語(yǔ)句后添加SYNC關(guān)鍵字。

  2. 執(zhí)行以下語(yǔ)句查詢指定表的搜索索引信息。

    SHOW INDEX FROM search_table;

    查詢結(jié)果如下:

    +---------------+--------------+------------+-------------+------------+---------------+------------------------------------+-----------+-------------------+
    | TABLE_SCHEMA  |  DATA_TABLE  | INDEX_NAME | INDEX_STATE | INDEX_TYPE | INDEX_COVERED |            INDEX_COLUMN            | INDEX_TTL | INDEX_DESCRIPTION |
    +---------------+--------------+------------+-------------+------------+---------------+------------------------------------+-----------+-------------------+
    | searchindex_db| search_table | idx        | BUILDING    | SEARCH     | NA            | address,city,age,gender,name,email | 0         |                   |
    +---------------+--------------+------------+-------------+------------+---------------+------------------------------------+-----------+-------------------+
    說(shuō)明

    搜索索引尚未構(gòu)建完成時(shí),索引狀態(tài)為BUILDING。搜索索引構(gòu)建完成后,索引狀態(tài)為ACTIVE。返回結(jié)果的詳細(xì)說(shuō)明,請(qǐng)參見(jiàn)SHOW INDEX

  3. 查詢數(shù)據(jù),更多查詢場(chǎng)景的方法請(qǐng)參見(jiàn)通過(guò)搜索索引查詢寬表數(shù)據(jù)

    SELECT * FROM search_table WHERE name='王先生' AND age > 18 AND city='杭州';

    查詢結(jié)果如下:

    +---------+--------+-----+--------+--------------+------------------+------+
    | user_id |  name  | age | gender |   address    |      email       | city |
    +---------+--------+-----+--------+--------------+------------------+------+
    | 20      | 王先生  | 28  | M      | 杭州市濱江區(qū)  | a***@example.net | 杭州  |
    +---------+--------+-----+--------+--------------+------------------+------+
  4. 如果您不再需要搜索索引,可以執(zhí)行以下語(yǔ)句刪除。

    1. 在刪除索引前,您需要執(zhí)行以下語(yǔ)句先禁用索引。

      ALTER INDEX IF EXISTS idx ON search_table DISABLED;
      說(shuō)明

      索引禁用后狀態(tài)為DISABLED,如果想要再次啟用,需執(zhí)行ALTER INDEX IF EXISTS idx ON search_table REBUILD;語(yǔ)句重新構(gòu)建。

    2. 刪除索引。

      DROP INDEX IF EXISTS idx ON search_table;

      詳細(xì)說(shuō)明請(qǐng)參見(jiàn)DROP INDEX

使用動(dòng)態(tài)列

  1. 開(kāi)啟動(dòng)態(tài)列功能。

    ALTER TABLE search_table SET 'DYNAMIC_COLUMNS' = 'true';
    說(shuō)明

    更多說(shuō)明,請(qǐng)參見(jiàn)開(kāi)啟動(dòng)態(tài)列

  2. 添加動(dòng)態(tài)列。動(dòng)態(tài)列需要顯式添加至搜索索引中。

    • 新建搜索索引時(shí)指定動(dòng)態(tài)列。

      CREATE INDEX idx USING SEARCH ON search_table(user_id,name,age,gender,password);
    • 已有搜索索引,通過(guò)ALTER INDEX命令添加動(dòng)態(tài)列。

      ALTER INDEX idx ON search_table ADD COLUMNS(password);

      其中password未在建表時(shí)定義,為新添加的動(dòng)態(tài)列。

  3. 寫入動(dòng)態(tài)列。

    UPSERT INTO search_table (user_id,name,age,gender,address,email,city,password) VALUES (30, '王女士', 38, 'F', '深圳市南山區(qū)', 'a***@example.net', '深圳', 'ef0011');

    其中動(dòng)態(tài)列password只能寫入HexString格式數(shù)據(jù),詳細(xì)使用說(shuō)明,請(qǐng)參見(jiàn)寫入動(dòng)態(tài)列

  4. 查詢動(dòng)態(tài)列。

    SELECT * FROM search_table WHERE password='ef0011' AND gender='F' LIMIT 1;

    其中password列只能以HexString格式查詢,詳細(xì)使用說(shuō)明,請(qǐng)參見(jiàn)查詢動(dòng)態(tài)列

    返回結(jié)果如下:

    +---------+--------+-----+--------+--------------+------------------+------+----------+
    | user_id |  name  | age | gender |   address    |      email       | city | password |
    +---------+--------+-----+--------+--------------+------------------+------+----------+
    | 30      | 王女士  | 38  | F      | 深圳市南山區(qū)  | a***@example.net | 深圳 | 0xef0011 |
    +---------+--------+-----+--------+--------------+------------------+------+----------+