ElasticSearch 系列文章
1 ES 入门之一 安装ElasticSearcha
2 ES 记录之如何创建一个索引映射
3 ElasticSearch 学习记录之Text keyword 两种基本类型区别
4 ES 入门记录之 match和term查询的区别
5 ElasticSearch 学习记录之ES几种常见的聚合操作
6 ElasticSearch 学习记录之父子结构的查询
7 ElasticSearch 学习记录之ES查询添加排序字段和使用missing或existing字段查询
8 ElasticSearch 学习记录之ES高亮搜索
9 ElasticSearch 学习记录之ES短语匹配基本用法
10 ElasticSearch 学习记录之 分布式文档存储往ES中存数据和取数据的原理
11 ElasticSearch 学习记录之集群分片内部原理
12 ElasticSearch 学习记录之ES如何操作Lucene段
13 ElasticSearch 学习记录之如任何设计可扩容的索引结构
14 ElasticSearch之 控制相关度原理讲解
ES 中 Text keyword 两种基本类型区别
- string字段被拆分成两种新的数据类型: text用于全文搜索的, 而keyword用于关键词搜索.
- 字符串将默认被同时映射成text和keyword类型,就像下面的这种结构
动态映射(dynamic mappings)
"name": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
- 于这个映射你即可以在foo字段上进行全文搜索, 也可以通过foo.keyword字段实现关键词搜索及数据聚合
- 如何将新旧的版本迁移
全文索引的字段
{
"foo": {
"type": "string",
"index": "analyzed"
}
}
{
"foo": {
"type": "text",
"index": true
}
}
不索引 关键词搜索
{
"foo": {
"type": "string",
"index": "not_analyzed"
}
}
{
"foo": {
"type": "keyword",
"index": true
}
}