赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 表格存储
  4. 操作指南
  5. SQL查询
  6. DQL操作
  7. 全文检索

全文检索

  • DQL操作
  • 发布于 2025-04-22
  • 0 次阅读
文档编辑
文档编辑

使用匹配查询(TEXT_MATCH)或者短语匹配查询(TEXT_MATCH_PHRASE)条件作为SELECT语句中的WHERE子句,您可以使用SELECT语句通过多元索引查询表中匹配指定字符串的数据,实现全文检索功能。

前提条件

已创建多元索引并为要匹配的列设置了分词。具体操作,请参见创建多元索引。

说明

关于分词的更多信息,请参见分词。

匹配查询

匹配查询采用近似匹配的方式查询表中的数据。对Text类型的列值和查询关键词会先按照设置好的分词器做切分,然后按照切分好后的词去查询。对于进行模糊分词的列,建议使用TEXT_MATCH_PHRASE实现高性能的模糊查询。

  • SQL表达式

    TEXT_MATCH(fieldName, text, [options])
  • 参数说明

    参数

    类型

    是否必选

    示例值

    说明

    fieldName

    string

    是

    col1

    要匹配的列。匹配查询可应用于Text类型。

    text

    string

    是

    "tablestore is cool"

    查询关键词,即要匹配的值。

    当要匹配的列为Text类型时,查询关键词会被分词成多个词,分词类型为创建多元索引时设置的分词器类型。如果创建多元索引时未设置分词器类型,则默认分词类型为单字分词。

    例如当要匹配的列为Text类型时,分词类型为单字分词,则查询词为"this is",可以匹配到“...,this is tablestore”、“is this tablestore”、“tablestore is cool”、“this"、“is”等。

    options

    string

    否

    "or", "2"

    匹配选项。包括如下选项:

    • operator:关系逻辑符,可选值包括OR和AND,默认值为OR。

    • minimum_should_match:最小匹配个数,默认值为1。

      如果operator为OR,只有当某一行数据的fieldName列的值中至少包括最小匹配个数的词时,才表示行数据满足查询条件。

      如果operator为AND,则只有分词后的所有词都在列值中时,才表示行数据满足查询条件。

  • 返回值

    返回值为Boolean类型,表示该行是否满足查询条件。取值为true时,表示满足查询条件;取值为false时,表示不满足查询条件。

  • 示例

    以下示例用于查询exampletable表中col1列值匹配"tablestore is cool"字符串至少2个分词的数据。

    SELECT * FROM exampletable WHERE TEXT_MATCH(col1, "tablestore is cool", "or", "2")

    以下示例用于查询exampletable表中col1列值匹配"tablestore is cool"字符串所有分词的数据。

    SELECT * FROM exampletable WHERE TEXT_MATCH(col1, "tablestore is cool", "and")

短语匹配查询

短语匹配查询类似于TEXT_MATCH,但是分词后多个词的位置关系会被考虑,只有分词后的多个词在行数据中以同样的顺序和位置存在时,才表示行数据满足查询条件。

  • SQL表达式

    TEXT_MATCH_PHRASE(fieldName, text)
  • 参数说明

    参数

    类型

    是否必选

    示例值

    说明

    fieldName

    string

    是

    col1

    要匹配的列。匹配查询可应用于Text类型。

    text

    string

    是

    "tablestore is cool"

    查询关键词,即要匹配的值。

    当要匹配的列为Text类型时,查询关键词会被分词成多个词,分词类型为创建多元索引时设置的分词器类型。如果创建多元索引时未设置分词器类型,则默认分词类型为单字分词。关于分词的更多信息,请参见分词。

    例如查询的值为“this is”,可以匹配到“...,this is tablestore”、“this is a table”,但是无法匹配到“this table is ...”以及“is this a table”。

  • 返回值

    返回值为Boolean类型,表示该行是否满足查询条件。取值为true时,表示满足查询条件;取值为false时,表示不满足查询条件。

  • 示例

    以下示例用于查询exampletable表中col1列值匹配"tablestore is cool"字符串的数据。

    SELECT * FROM exampletable WHERE TEXT_MATCH_PHRASE(col1, "tablestore is cool")

相关文档

您还可以直接使用多元索引实现全文检索功能。更多信息,请参见分词、匹配查询和短语匹配查询。

相关文章

查询数据 2025-04-22 14:41

执行SELECT语句查询表中数据。 前提条件 如果通过表查询数据,请创建表的映射关系。具体操作,请参见创建表的映射关系。如果通过多元索引查询数据,请创建多元

聚合函数 2025-04-22 14:41

聚合函数一般用于对多行数据的指定字段执行计算并返回统计结果,例如计算总数、平均数、最大值、最小值等。您可以使用SQL语句通过聚合函数统计分析表中的数据。本文介绍使用SQL查询时支持的聚合函数。

全文检索 2025-04-22 14:41

使用匹配查询(TEXT_MATCH)或者短语匹配查询(TEXT_MATCH_PHRASE)条件作为SELECT语句中的WHERE子句,您可以使用SELECT语句通过多元索引查询表中匹配指定字符串的数据,实现全文检索功能。 前提条件</

多元索引数组类型 2025-04-22 14:41

多元索引除了提供Long、Double、Boolean、Keyword、Text等基本类型外,还提供了数组类型。数组类型属于附加类型,可以附加在Long、Double、Boolean、Keyword、Text等基本类型之上。使用ARRAY_EXTRACT条件作为SELECT语句中的WHERE子句,您

多元索引嵌套类型 2025-04-22 14:41

多元索引除了提供Long、Double、Boolean、Keyword、Text等基本类型外,还提供了嵌套类型(Nested)。嵌套类型代表嵌套文档类型。嵌套文档是指对于一行数据(文档)可以包含多个子行(子文档),多个子行保存在一个嵌套类型字段中。本文介绍如何通过SQL查询功能查询嵌套类型的列数据。

多元索引虚拟列 2025-04-22 14:41

使用多元索引虚拟列功能时,您可以通过修改多元索引schema或者新建多元索引来实现新字段新数据类型的查询功能,而无需修改表格存储的存储结构及数据。 说明 关于多元索引虚拟列的更多信息,请参见虚拟列

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号