Elasticsearch|Elasticsearch 映射参数详解 fields
Elasticsearch 映射参数 fields
fields
处于不同的目的,通过不同的方法索引相同的字段通常非常有用。这也是多字段的目的。例如,一个字符串字段可以映射为text字段用于全文本搜索,也可以映射为keyword字段用于排序或聚合。
PUT my_index{"mappings": {"_doc": {"properties": {"city": {"type": "text","fields": {"raw": { "type":"keyword"}}}}}}}
note
:city.raw字段是city字段的keyword版本。GET my_index/_search{"query": {"match": {"city": "york" }},"sort": {"city.raw": "asc" },"aggs": {"Cities": {"terms": {"field": "city.raw" }}}}
【Elasticsearch|Elasticsearch 映射参数详解 fields】
note
:city字段用于全文本搜索。note
:city.raw用于排序与聚合。多字段不能修改原始_source字段。
对于相同索引中具有相同名称的字段,fields设置允许有不同的设置。可以使用PUT映射API将新的多字段添加到已存在的字段中。
带有多个分析的多字段
多字段的另一个应用场景是使用不同的方法分析相同的字段以求获得更好的相关性。
PUT my_index{"mappings": {"_doc": {"properties": {"text": { "type": "text","fields": {"english": { "type":"text","analyzer": "english"}}}}}}}
note
:text.field字段使用english分析器。elasticsearch注解实现fields mapping效果:
"label": {"type": "keyword","fields": {"IKS": {"type": "text","analyzer": "ikIndexAnalyzer"}}}
@Column(name = "标签")@MultiField(mainField = @Field(type = FieldType.Keyword),otherFields = {@InnerField(suffix = "IKS", type = FieldType.Text, analyzer = "ikIndexAnalyzer")})protected String label;
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
推荐阅读
- [源码解析]|[源码解析] NVIDIA HugeCTR,GPU版本参数服务器---(3)
- 接口|axios接口报错-参数类型错误解决
- performSelectorOnMainThread:withObject:waitUntilDone:参数设置为NO或YES的区别
- iview|iview upload 动态改变上传参数
- ElasticSearch6.6.0强大的JAVA|ElasticSearch6.6.0强大的JAVA API详解
- Elasticsearch|Elasticsearch 简介
- 小程序开发|小程序开发 - 页面传值url类型
- Qiime2|Qiime2 cutadapt使用参数
- elasticsearch分析器
- linux作业9