Elasticsearch Mapping - Elasticsearch 学习实践 (2)

Mapping Mapping是用于定义文档及其内部属性字段如何被索引及搜索的。 系统字段 首先了解下系统特别制定的字段及其用法。 结构定位字段 _index: 类似数据库的库名 _type: 类似数据库的表名 _id: 类似数据库中每条数据的ID _uid: 结构是{type}#{id},可用于直接准确查询某条数据 文档数据字段 _source: 原始数据JSON _size: 原始数据JSON的大小 可用于索引查询的字段 _all: 将_source数据用空格切分保存后作索引(不建议保存,影响性能) _field_names: 用于是否包含某字段查询 路由字段 _parent: 用于在两种数据类型之间创建父子关系 _routing: 用于路由到特定的分片(shard) 其他字段 _meta: 用于存储特定的信息,比如有效版本号、可调用的类函数等 用户定义字段 定义用户索引的文档字段属性,系统本身是提供动态mapping,也就是说,我们可以在不定义mapping的情况下直接导入,系统会根据用户的第一倒入生成mapping。 但如果文档相对复杂,还是建议完整设置动态mapping来避免异常错误。 Elasticsearch 为我们提供了常用的字段类型,包括:text, keyword, date, boolean, long, integer, short, byte, double, float, binary, 复杂点的array, object, nested, 用于定位的geo_point, geo_shape, 特殊的ip, completion, token_count, murmur3, attachments, percolator。 其中需要注意的是 text和keyword都是string, 前者会被当作文本分析并索引,可用于包含关键词搜索,后者会作为一个整体而被作为完全匹配搜索, 主要用于聚合、排序等功能使用。 array 并非数据类型,仅仅作为数据类型标识。 object 同array 仅作为数据类型标识,无任何意义。 nested 等同于object数据类型,将数据结构的KEY扁平化如: "user.first" : [ "alice", "john" ], 常用设置 index....

November 17, 2016 · 2 min · 283 words · Eric Yang

Get Start - Elasticsearch 学习实践 (1)

基本概念 索引(indix): 相当于关系型数据库的数据库。 类型(type):相当于关系型数据库的表。 文档(Document): 相当于关系型数据库中的每一行数据记录。 字段(field):相当于数据类型,例如字符串、整数、日期等。 映射(mapping): 用于定义文档及其内部属性字段如何被索引及搜索的。 节点(Node):单台服务器称为一个节点,默认情况下最好配置2+台保证可用性。 分片索引(Shard):Elasticsearch会把数据分发到多台服务器上存储。这个过程成为分片(Sharding)。 索引副本(Replica):副本主要是主分片的复制。在搜索请求阻塞在单个节点时,它可以像原来的主分片一样处理用户搜索请求。 安装 使用 Docker 安装 文件目录结构: Dockerfile // Docker安装文件 config/ elasticsearch.yml // Elasticsearch的基本配置 license.json // 在官网注册的Basic License x-pack/ roles.yml // 定义角色 Dockerfile FROM elasticsearch:5.2.0 # Define working directory. WORKDIR /tmp # Define default command. # CMD ["/elasticsearch/bin/elasticsearch"] RUN /usr/share/elasticsearch/bin/elasticsearch-plugin install x-pack # 使用IK分词器 ENV IK_VERSION 5.2.0 RUN wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v$IK_VERSION/elasticsearch-analysis-ik-$IK_VERSION.zip RUN unzip elasticsearch-analysis-ik-$IK_VERSION.zip -d /usr/share/elasticsearch/plugins/ik/ RUN rm -f elasticsearch-analysis-ik-$IK_VERSION.zip # Mount elasticsearch....

November 17, 2016 · 2 min · 250 words · Eric Yang