es7建立模型及搜索dsl

字段类型

(1) text和keyword

text类型用于全文本字段, 文本会被分词. 默认不支持聚合和排序, 只有将fielddata设为true才能支持聚合和排序, 但不推荐使用.

keyword类型用于id, 枚举, 或不需要被分词的文本. 适用于filter搜索, 排序和聚合
.
Elasticsearch默认会为text类型设置一个keyword多字段类型(子字段), 通过keyword子字段进行聚合和排序.

"id"是整型,可以设置类型为"integer"或"long"
"name"是字符串类型,需要作为查询条件,并且需要分词。类型要指定为"text",指定中文分词器"ik_max_word",搜索的时候指定"ik_smart"分词器。ps:"text"类型数据会被分词,"keyword"类型不会被分词。
"image"作为一个商品的图片链接,用作展示商品,是不需要作为搜索条件的,所以不需要建立索引,也不需要做聚合分析,直接设置"enabled": false。其他类似需求的字段也和"image"一样设置
"item_url"也和"image"一样。
"shop_name"是需要作为查询条件,但是因为每个店铺的名字并不规范,ik自带的词库并不能满足分词的要求,所以给出以下两种

es7建立模型及搜索dsl

es7建立模型及搜索dsl