开发者社区 问答 正文

OpenSearch的字段类型和分词类型有哪些?



字段类型说明


数据推送到OpenSearch后会先保存到离线数据表中,在此阶段,为了方便用户推送数据,数据表允许用户根据实际业务场景定义多个表(需要指定关联字段),并提供了数据处理的插件。数据处理完毕后会join成一张索引表,这种索引表主要定义搜索属性,供引擎构建索引及查询使用。
这里分别介绍下数据表与索引表的字段对应关系。

数据表字段


数据表主要为数据导入时使用,不同的数据处理插件对类型有不同的要求,这里只是初步类型选择,下一步将有更细化的类型。具体字段取值范围,请参见 系统限制-字段相关部分说明。超过取值范围将溢出或者截断,请务必保证选择类型正确。

类型说明
INTint64整型
INT_ARRAYint64整型数组
FLOAT浮点型
FLOAT_ARRAY浮点型数组
DOUBLE浮点型
DOUBLE_ARRAY浮点型数组
LITERAL字符串常量,仅支持精确匹配
LITERAL_ARRAY字符串常量数组,单个元素仅支持精确匹配
SHORT_TEXT短文本,长度在100字节内,支持若干分词方式
TEXT长文本,支持若干分词方式


索引表字段


对于INT及FLOAT类型介绍这里不再累赘(限制详见 系统限制),重点介绍下各字段类型。

主要类型介绍


搜索效果如何跟分词有很大的关系,分词方式直接影响最终的搜索效果展示,目前系统支持若干的分词方式,需要根据实际业务场景的需求选择合适的字段类型。
接下来,我们详细说明下各个字段的展现效果及适用场景,供大家参考。

不分词


不分词,适合一些需要精确匹配或者只展示不搜索的场景,如标签、关键词、url等。LITERAL、INT类型可选。



展开
收起
轩墨 2017-10-25 10:11:18 2708 分享 版权
阿里云 AI 助理回答

在阿里云OpenSearch中,数据表和索引表的字段类型设计对于数据处理、搜索性能以及用户体验至关重要。下面我将详细解释这些字段类型及其适用场景:

数据表字段

数据表主要用于数据导入阶段,它支持多种字段类型以适应不同来源和格式的数据。以下是主要的数据表字段类型及说明:

  1. INT (int64): 整型,用于存储整数值。
  2. INT_ARRAY (int64数组): 用于存储整数数组,适用于需要批量处理或过滤整数集合的场景。
  3. FLOAT: 浮点型,适合存储小数或需要浮点运算的数值。
  4. FLOAT_ARRAY (浮点型数组): 存储浮点数数组,适用于包含多个浮点数值的场景。
  5. DOUBLE: 双精度浮点型,提供更高的精度,适合科学计算或需要更高精度的场景。
  6. DOUBLE_ARRAY (双精度浮点型数组): 存储双精度浮点数数组。
  7. LITERAL: 字符串常量,仅支持精确匹配,适用于不需要分词处理的字符串,如ID、标签等。
  8. LITERAL_ARRAY: 字符串常量数组,每个元素同样只支持精确匹配。
  9. SHORT_TEXT: 短文本字段,长度限制在100字节内,支持多种分词方式,适用于简短内容的搜索。
  10. TEXT: 长文本字段,适用于大段文本内容,支持多种分词策略,是全文搜索的主要类型。

索引表字段

索引表是经过数据处理后用于构建搜索引擎索引的表,其字段类型的选择直接影响到搜索效率和结果准确性。特别地,关于不分词的字段类型:

  • LITERALINT: 这些类型在索引时不进行分词处理,适合于需要精确匹配的场景,例如标签、关键词、URLs等。它们不会被拆分成更小的词语单元,查询时必须完全匹配输入值才能返回结果。

分词与搜索效果

  • 不分词字段:适用于不需要根据单词或短语进行搜索的情况,保证了查询的精确性。
  • 分词字段(如SHORT_TEXT和TEXT):通过选择合适的分词器,可以优化搜索体验,比如对长文本进行有效分割,使得用户可以通过输入文本中的任意部分词汇来查找相关内容,适用于全文检索场景。

正确选择字段类型和分词策略是确保OpenSearch服务高效运行和提供高质量搜索结果的关键。开发者应根据实际业务需求,仔细考虑数据的性质和预期的搜索行为,来定制化配置数据表和索引表的字段类型。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答