文本搜索类型
-
text
文本系列包括text和match_only_text2种类型。text用于索引全文值的字段,例如电子邮件正文或产品描述。es会先用分词器将字符串转换为单个术语的列表,然后再进行索引。适用于非结构化但人类可读的内容, 例如邮件正文, 文章等。PUT my-index-000001 { "mappings": { "properties": { "full_name": { "type": "text" } } } }参数 意义 analyzer 文本分词器,默认为index analyzer 或 standard analyzer eager_global_ordinals 是否应该在刷新时急切地加载全局序数?接受true或false (默认)。对于常用于术语聚合的字段建议开启。 fielddata 是否可以使用内存中的字段数据进行排序、聚合或脚本吗?接受true或false(默认)。 fielddata_frequency_filter 允许决定在启用时将哪些值加载到内存中的特别设置fielddata 。默认情况下会加载所有值。 fields 多字段允许为不同目的以多种方式索引相同的字符串值,例如一个用于搜索的字段和一个用于排序和聚合的多字段。 index 该字段是否应该可以快速搜索?接受true(默认)和 false. 仅doc_values 启用的字段仍然可以使用基于术语或范围的查询进行查询,尽管速度较慢。 index_options 哪些信息应存储在索引中,用于搜索和突出显示。默认为positions. index_prefixes 如果启用,2 到 5 个字符之间的术语前缀将被索引到单独的字段中。这允许前缀搜索以更大的索引为代价更有效地运行。 index_phrases 如果启用,两个词的组合 ( shingles ) 将被索引到一个单独的字段中。这允许以更大的索引为代价,更有效地运行精确的短语查询(无 slop)。请注意,当停用词未被删除时,此方法效果最佳,因为包含停用词的短语将不使用辅助字段,并将回退到标准短语查询。接受true或false(默认)。 norms 字段长度是否对查询评分有影响。接受true(默认)或false。 position_increment_gap 应该在字符串数组的每个元素之间插入的假术语位置的数量。默认为position_increment_gap 在分析器上配置的默认为100. 100之所以选择它,是因为它可以防止具有相当大的斜率(小于 100)的短语查询跨字段值匹配术语。 store 字段值是否应与字段_source分开存储和检索。接受true或false (默认)。 search_analyzer 通常,在索引时和搜索时应该应用相同的分析器,以确保查询中的术语与倒排索引中的术语格式相同。 但是,有时在搜索时使用不同的分析器可能是有意义的。 默认为analyzer设置。 search_quote_analyzer 为短语指定分析器,这在处理禁用短语查询的停用词时特别有用。默认为search_analyzer设置。 similarity 应该使用 哪种评分算法或相似度。默认为BM25. term_vector 是否应为该字段存储术语向量。默认为no. meta 关于字段的元数据。 参数讲解:
-
fielddata: 默认情况下,text字段是可搜索的,但默认情况下不可用于聚合、排序或脚本。通过设置fielddata=true使倒排索引反转的方式将字段数据存于内存中, 这种方法会造成占用大量内存。 建议不要使用该方法, 可以使用fields替代。 -
fielddata_frequency_filter: 与fielddata混合使用,用于过滤部分低于不符合区间的字段, 减少内存的占用。
match_only_text它是以text位置查询的评分和效率来换取空间效率。此字段有效地存储数据的方式与text仅索引文档 ( index_options: docs) 并禁用规范 ( norms: false) 的字段相同。 -
annotated-text
包含特殊标记的文本。用于识别命名实体。comletion
用于自动完成建议。search_as_you_type
text-like 类型,用于在输入时完成。token_count
文本中标记的计数。
结构化数据类型
-
range 范围
范围字段类型表示上限和下限之间的连续值范围。 使用gt或gte用于下限,lt或lte用于上限。它们可用于查询,并且对聚合的支持有限。支持以下范围类型:
类型 描述 integer_range 一系列带符号的 32 位整数,最小值为 ,最大值为。
float_range 一系列单精度 32 位 IEEE 754 浮点值。 long_range 一系列带符号的 64 位整数,最小值为 ,最大值为
。
double_range 一系列双精度 64 位 IEEE 754 浮点值。 date_range 一系列date值。format日期范围通过映射参数支持各种日期格式。无论使用何种格式,日期值都会被解析为一个无符号的 64 位整数,表示自 UTC 的 Unix 纪元以来的毫秒数。 ip_range 支持IPv4或 IPv6(或混合)地址 的一系列 ip 值。 使用方法参考 range
ip
一个ip字段可以索引/存储IPv4或 IPv6地址。 使用方法参考 ipversion
软件版本。支持语义版本控制 优先规则。murmur3
计算和存储值的哈希值。需要安装插件并且重启节点才能生效, 参考 murmur3
聚合数据类型
aggregate_metric_double
预先汇总的指标值。参考 aggregate_metric_doublehistogram
直方图形式的预聚合数值。参考 histogram
空间数据类型
geo_point
纬度和经度点。参考 geo_pointgeo_shape
复杂的形状,例如多边形。参考 geo_shapepoint
任意笛卡尔点。参考 pointshape
任意笛卡尔几何。参考 shape
文档排名类型
dense_vector
记录浮点值的密集向量。参考 dense_vectorrank_feature
记录数字特征以在查询时提高命中率。参考 rank_featurerank_features
记录数字特征以在查询时提高命中率。参考 rank_features