全部產品
Search
文件中心

Tablestore:使用萬用字元查詢時報錯length of field value is longer than 32 for the [WILDCARD_QUERY] query

更新時間:Jun 20, 2025

當使用萬用字元查詢時出現length of field value is longer than 32 for the [WILDCARD_QUERY] query異常時,您可以縮短查詢字串或使用短語匹配查詢。

現象

使用萬用字元查詢時出現如下異常:

length of field value is longer than 32 for the [WILDCARD_QUERY] query

原因

帶有萬用字元的字串長度超出了32字元的限制。

解決方案

縮短查詢字串

縮短待查詢的字串,以確保其長度在32個字元以內。

基於分詞的萬用字元查詢

多元索引支援採用基於分詞的萬用字元查詢方式,以實現效能更優的模糊查詢。在使用基於分詞的萬用字元查詢方式時,查詢詞長度不受限制,但原文內容限制為最多1024字元或者漢字,超過此限制後將自動截斷,只保留前1024個字元或者漢字。

  1. 動態修改多元索引schema。

    請根據業務影響評估修改目標列或添加虛擬列,並設定類型為分詞字串(Text)且分詞類型為模糊分詞(Fuzzy)。具體操作,請參見動態修改schema虛擬列

  2. 使用短語匹配查詢(MatchPhraseQuery)。

    具體操作,請參見基於分詞的萬用字元查詢

SQL萬用字元查詢情境

使用SQL查詢資料時,如果資料表存在多元索引,並且該多元索引包含SQL中涉及的所有資料列,則SQL引擎將自動選擇該多元索引進行資料查詢。在此情況下,執行SQL萬用字元查詢(如LIKE運算子結合萬用字元%),也將存在查詢詞長度限制(最長32個字元)。

您可以通過以下操作解決此問題。

  1. 動態修改多元索引schema。

    請根據業務影響評估修改目標列或添加虛擬列,並設定類型為分詞字串(Text)且分詞類型為模糊分詞(Fuzzy)。具體操作,請參見動態修改schema虛擬列

  2. 建立多元索引的映射關係

    以下樣本用於為資料表example_table的多元索引example_table_index,建立多元索引映射關係example_table__example_table_index

    CREATE TABLE `example_table__example_table_index`(
        `pk` MEDIUMTEXT,
        `attr` MEDIUMTEXT,
        `attr_virtual` MEDIUMTEXT #虛擬列
    )
    ENGINE='searchindex',
    ENGINE_ATTRIBUTE='{"index_name":"example_table_index","table_name":"example_table"}';
  3. 在SQL語句中使用短語匹配查詢(TEXT_MATCH_PHRASE)

    以下樣本用於查詢多元索引映射關係example_table__example_table_index中虛擬列attr_virtual值匹配"tablestore is super cool!"字串的資料。

    select * from example_table__example_table_index where TEXT_MATCH_PHRASE(attr_virtual, "tablestore is super cool!");