Text
当一个字段是要被全文检索时,比如 Email 内容、产品描述,这些字段应该使用 text 类型。设置 text 类型以后,字段内容会被分析,在生成倒排索引之前,字符串会被分析器分词。text类型的字段不用于排序,很少用于聚合。
注意事项:
- 适用于全文检索:如 match 查询。
- 文本字段会被分词。
- 默认情况下,会创建倒排索引。
- 自动映射器会为 Text 类型创建 Keyword 字段。
Keyword
Keyword 类型适用于不分词的字段,如姓名、Id、数字等。如果数字类型不用于范围查找,用 Keyword 的性能要高于数值类型。
注意事项
- Keyword 不会对文本分词,会保留字段的原有属性,包括大小写等。
- Keyword 仅仅是字段类型,而不会对搜索词产生任何影响。
- Keyword 一般用于需要精确查找的字段,或者聚合排序字段。
- Keyword 通常和 Term 搜索一起用
在text类型中可以设置keyword
"product_name": {
"type": "text",
"fields": {
"keyword": { // 为产品名称字段添加一个keyword类型的子字段,用于精确匹配
"type": "keyword"
}
}
}