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
}
}
05-04 03:07