文章目录
权威指南基于2.x版本;Query DSL 基于6.4.3。
Elasticsearch权威指南
入门
marvel管理工具
/_shutdown;关闭es。
es客户端:节点客户端、传输客户端。
9200,restful HTTP;9300,rpc tcp,更快。
es面向文档,使用json存储数据,
分布式集群
集群、节点、分片。
横向扩展、纵向扩展。
空集群
节点:一个es实例
集群:一个或多个协同工作的节点。
es主节点管理集群级别的变更(索引、节点),不参与文档级别的变更。
客户端可连接集群中任意节点;由连接节点转发请求,并收集整理返回数据。
集群健康
集群健康:red(不是所有主分片可用)、yellow(主分片都可用,从分片不是都可用)、green(主从分片都可用)
索引:存储关联数据的地方。实际上为指向一个或多个分片的逻辑命名空间。类似数据目录。
分片,最小级别的工作单元,存储索引的一部分。将索引切分为多个数据片存储在多个节点,并行以提高查询性能。副本,保证数据可用性。
每个分片都是一个Lucene实例;主分片负责读写,并发复制文档到从,从分片负责读。
集群扩容、缩容时,es自动迁移分片。节点恢复时,只复制故障期间变更的数据。
数据
es是分布式文档数据库,存储序列化的json文档(document)。
文档元数据:_index、_type、_id
使用重试(幂等)、版本控制,处理更新冲突。
版本控制,_version;内部版本控制,自增;外部版本控制,_version设为传入值,不支持局部更新。
_mget、_bulk;可在url中指定默认index、type,在请求体中可覆盖。
分布式增删改查
PUT;增。PUT /index/type/ID
DELETE;删。DELETE /index/type/ID
POST;改。POST /index/type/
GET;查。GET /index/type/ID?q=EXPR,或/index/type/_search
HEAD;元数据。HEAD /index/type/ID
分片规则:hash(route)%分片数;route默认为_id,也可自行指定。
主分片数在创建后不可改变,否则之前的路由值会发生错误。
请求节点将写请求路由到对应主分片执行,而后复制文档到从分片;读请求,使用轮询方式进行负载均衡。
mget、bulk请求;请求节点先按分片构建数据请求,而后发到对应分片执行。
搜索
_search;搜索。
多个index、type时;逗号隔开。允许使用*匹配index、type。
/_all/lkk/_search;搜索全部索引的lkk文档。
from、size;指定偏移量、数量
简易搜索:/_search?q=EXPR
EXPR为name:value格式,空格隔开;前缀:+与,-非,无前缀为或。
EXPR必须转为url格式。
q=lkk;找到任意列包含lkk的文档。
映射和分析
mapping,映射,确定列类型。
analysis,分析,构建反向索引。
数据类型:string、number、boolean、date,null、数组、对象。
ES的数据大致可分为两种类型:确切值(完全匹配)、全文文本(匹配度)。
反向索引,由词查询文档。标准化:全小写,转换同根词同义词
analyzer,分析器;包括:字符过滤器(特殊字符处理)、分词器(断词)、表征过滤(标准化)。
内建分析器:
- 标准分析器;根据Unicode Consortium分隔单词,去掉标点符号,转小写。
- 简单分析器;将非单个字母的文本切分,转小写。
- 空格分析器;仅按空格切分。
- 语言分析器;考虑特定语言的特性,自带停用词。
string类型核心参数:index(analyzed、not_analyzed、no)、analyzer(分词器)
/_analyze;测试分析器
字段可以添加,但不能删除。
数组;数组的值必须为同一类型,es使用第一个值的类型确定数组类型。
null;空字段。不被索引,如:""、null、[]、[null]
object;多层对象。内部对象索引时会扁平化,变为key:[vals]形式;扁平化过程中,会丢失对像中数组对象属性key之间的关联关系,需使用nested类型。
结构化查询
GET /_search BODY;可查询多个索引、类型,同字符串查询。也支持POST方式。
{};空查询,返回全部文档
from,size;分页参数
query;查询参数。空查询等同于:{ “query” : { “match_all”:{}}}
查询子句结构:
- queryName:{fieldName:val};queryName,match、match_all等。
- queryName:{fieldName: {arg:val}};指定字段,arg为match操作属性:query、operator、boost等
结构化过滤
filter,只匹配不评分,可使用缓存。通过字节集缓存数据。
term,terms;精确过滤,包含。
range;范围过滤;gt、lt、gte、lte
exists,missing;字段过滤
bool;合并多个过滤。must、shoud、must_not
结构化查询
query,查询并评分,不可使用缓存。
match_all;查询全部文档。默认。score为1.
match;全文文本时使用匹配度,确切值时精确匹配。
multi_match;搜索多个字段。
bool;类似bool过滤。must、should、must_not,合并多个查询。
查询与过滤的合并
search API中只能包含query语句,使用filtered保证filter、query语句。
{ query : { filtered : { filter,query}}}
验证查询
/_validate/query;验证查询语句是否合法
/_validate/query?explain;查询计划,类似sql explain
排序
默认按相关性,降序排序。
sort;指定排序字段,多个字段时用数组。
包含多个值的字段排序,使用max、min、avg、sum等选出排序值。
不使用score排序时,不计算score。
"sort": [
{ "date": { "order": "desc","mode": "min" }},
{ "_score": { "order": "desc" }}
]
字符串排序,可构建内部not_analyze字段,用于排序。
相关性计算:检索词频率、反向文档频率、字段长度准则。
分布式搜索
ES查询分两步:查询、取回 。
查询阶段;协调节点转发请求;分片返回文档id、排序字段;排序分片返回到有序优先队列中。
取回阶段;协调节点筛选结果,向分片请求数据;分片按需返回。
搜索选项:
- preference;控制分片选择,避免结果震荡。
- timeout;超时
- routing;路由选择,限制分片选择。
- search_type;搜索类型。count计数,scan扫描,
query_and_fetch查询取回等。
扫描和滚屏;批量返回数据,不排序。滚屏标记文档,扫描获取并返回结果集。
分片内部原理
倒排索引,词-文档id;不可变;
- 优:不需要锁、缓存(自身、filter)、允许压缩;
- 劣:加入、修改文档时需重建整个索引
通过补充索引,处理更新问题。
- es按段搜索,每个段都是一个倒排索引。
- 提交点,列出所有已知段的文件。
- 文档更新时,在内存中保存新的文档、索引,同时旧文档标记.del,从结果集中剔除;延时写入磁盘。
近实时搜索:
- ES在内存中缓存更新的文档、索引;_refresh后可见。
- 默认每秒执行一次_refresh,将缓存信息写入文件系统缓存。
索引_flush,默认30min,文件系统缓存写入磁盘(fsync写入磁盘)。 - 批量更新时,修改索引刷新间隔时间refresh_interval。
持久化变更:
- 使用translog日志,记录变更。
- 日志默认同步写入磁盘;可调整index.translog.durability/sync_interval
段自动合并,refresh过程中,es自动合并段。
聚合
桶(文档集合,group by)、指标(文档集合的字段统计,sum、avg、count、min/max等)
聚合只对非文本类型。aggs内可有多个聚合,必须为key:body格式。
桶内套指标、桶,aggs;
不带桶时计算指标,对所有条目计算。
指标,指标计算:
- avg、sum、min/max;
- value_count;计数
- extended_stats;
- cardinality;去重统计个数。参数:field、precision_threshold
- percentiles;百分位数度量,百分比-数值。
- percentiles_rank,数值-百分比;
桶,结果集分组;带key,count信息:
- terms;按字段值分桶。参数:field、size
- histogram;图表,条形图;field值为x轴,间隔为interval。参数:field、interval、min_doc_count、extended_bounds
- date_histogram;日期图表。参数:field、interval、format
- global;全局桶,计算type中全部文档;
- filter;过滤桶,只过滤聚合结果,只能得到一个结果集;顶级元素post_filter,只过滤搜索结果;过滤器,过滤搜索结果、聚合结果。
桶排序,order;内置排序(_count、_term、_key),度量排序(引用指标别名,多级使用>连接)
Query DSL 6.4.3
主要:全文查询,term查询,复合查询,连接查询
测试数据导入:https://blog.youkuaiyun.com/u012224510/article/details/86571305
命令:curl -H “Content-Type: application/x-ndjson” -XPOST “IP/INDEX/TYPE/_bulk?pretty” --data-binary @JSONPATH
jsonl类型,不带index、type
json对象,根属性:
- query;查询
- from、size;分页
- sort;排序;排序字段数组。
- search_after;指定深分页排序值;与排序字段匹配。跳过给定值,合理选择排序字段。
- aggs;聚合
- _source;返回字段,false不返回,只返回元数据
- stored_fields;返回store字段
- collapse;折叠去重,显示排序最高元素,可在inner_hits中展示所有元素。
- min_score;最低分
- highlight;高亮,从反向索引、term_vector获取匹配位置。
- suggest;建议
过滤
filter,只匹配不评分,可使用缓存。通过字节集缓存数据。
term,terms;精确过滤,包含。
range;范围过滤;gt、lt、gte、lte
exists,missing;字段过滤
bool;合并多个过滤。must、shoud、must_not
查询
query,查询并评分,不可使用缓存。
match_all;查询全部文档,默认;score为1。参数:boost
match_none;不匹配任何文档
全文查询Full text
match;全文文本时使用匹配度,确切值时精确匹配。
- query;查询值
- operator;match分词后拆为多个boolean查询,连接符,and、or默
- minimum_should_match;or个数。值类型
- analyzer;分词器
- lenient;忽略类型转换异常,false默。如text–number
- fuzziness;模糊查询,莱温斯坦距离。
- zero_terms_query;零条件查询。none默、all
- cutoff_frequency;截止频率,区分高频词、低频词。
- auto_generate_synonyms_pharse_query;同义词查询。true默。
match_phase;短语查询,接近匹配。
- slop;间隔,1默。
match_phase_prefix;类似短语查询,短语查询+前缀匹配最后一个词。
- max_expansion;最大搜索长度。50默。
- multi_match;match查询的多字段版本。
- fields;字段数组。[“lkk^3”],指定权重为3
- type;查询类型。best_field默、most_field、cross_field、phrase、phrase_prefix
- tie_breaker;非最佳匹配系数。
common;偏好非常见词,对高频词、低频词有匹配次数要求。
- minimum_should_match;高频/低频词匹配情况。如:2、“2<50%”、{high_freq:2, low_freq:3}
query_string;查询字符串语法。
- query;查询表达式,用and、or连接各子条件,小括号括起。
- default_field;默认字段
- fields;多字段数组
- default_operator;默认操作符,or默,and。
- quote_analyzer;带引号内容的分析器
- allow_leading_wildcard;允许首部通配符(?、*)。true默。
- enable_position_increment;允许位置增量。true默
simple_query_string;简单字符串
- +与,|或,-非,""包裹不分词文本,*前缀匹配,()括起表达式,~N指定slop或fuzziness
Term level queries
term;值查询
- value;值
- boost;权重
terms;多值查询
- index、type、id、path、route;引用值对象;path字段名,route路由信息
terms_set;值集合查询,规定最少匹配数。
- terms;值数组
- minmum_should_match_field;最少匹配数字段名
- minmum_should_match_script;最少匹配数计算脚本,params.num_terms值数组长度
range;范围查询
- lt、gt、lte、gte;条件,日期按单位舍入
- within、contains、intersects;与range类型比较,query包含、文档包含、交集
- format;日期格式化
- time_zone;时区,用于转为UTC时间
exists;存在查询,字段非null
- field;存在的字段名,null值转换时,判定转换后的值
prefix;前缀查询。i love lk,匹配最后一词的前缀
- value;前缀
wildcard;通配符查询,?单*多。防止以?*为首部。
- value,boost
regexp;正则查询
- value正则表达式,boost权重;
- 正则语法
fuzzy;模糊查询
- value值,boost权重;
- fuzziness;莱温斯坦距离。AUTO默。
- prefix_length;不会被模糊化的初始字符数。0默
- max_expansions;最大术语数。50默
- transpositions;模糊转置,ab-ba。false默。
type;类型查询
- { “query” :{ “type” :{ “value” :“ _doc” } } }
ids;id查询,类似/index/type/_mget { “ids”:[]}
- index,type,values;
复合查询
条件组合,分数计算
constant_score;常数查询,包装查询到filter子句,在过滤器上执行。
- filter;包装查询
- boost;权重
bool;组合查询,
- must、should,会累计评分;filter、must_not,在过滤器中执行,不评分
- boost、minimum_should_match
dis_max;disjunction,最佳匹配查询。类似multi_match的best_field,most_field
- queries查询对象数组,tie_breaker,boost
function_score;自定义分数
- query查询对象,random_score随机分数
boosting;权重查询
- positive、nagative;加分、减分
- nagative_boost;减分权重
连接查询
查询nested嵌套对象。
nested;嵌套查询返回父,查询nested类型字段。
- path;字段路径
- score_mode;评分模式。avg默、sum、min、max、none
- ignore_unmapped;忽略未映射内容。false默。
has_child;子查询,返回父,查询文档是否有对应的子对象。慢,少用。
- type;子类型
- query;查询json
- score_mode;评分模式。avg、sum、min、max、none默
- min_children、max_children;最少匹配数、最大匹配数
- ignore_unmapped;忽略未映射类型。false默
has_parent;父查询,返回子。慢,少用。
- parent_type;父类型
- score;计入父分。false默
- ignore_unmapped。
parent_id;父ID查询,返回子。join类型 。
- type;子类型
- id;父id
- ignore_unmapped。
特殊查询
与其他查询不兼容的查询。
more_like_this;相似查询
script;脚本查询
percolate;存储查询
wrapper;包装查询;查询表达式为base64字符串。
- {query: { wrapper: { query: BASE64EXPR}}}
跨度查询
除span_multi外,不可与非跨度查询联用。
span_term;包含term查询。
- value、boost
span_multi;包装查询(wildcard、regexp、fuzzy、prefix、range)。
- match;匹配查询对象
span_first;前N位查询。
- match;查询匹配对象
- end;偏移量
span_near;间距查询。
- clauses;查询对象数组
- slop;允许间距
- in_order;按查询对象数组匹配;
span_or;或。
- clause
span_not;非。
- include;剔除
- exclude;不剔除
- pre;include前N位不能包含exclude;0默
- post;include后N位不能包含exclude;0默
- dist;等效于同时设置pre、post
span_containing;含有查询;先big后little,同时满足
- big,little;查询对象
span_within;被包含查询;先little后big,little项在big匹配区间被满足。
- big,little
field_masking_span;跨字段查询。
- query,field
查询与过滤的合并
search API中只能包含query语句,使用filtered保证filter、query语句。
{ query : { filtered : { filter,query}}}
验证查询
/_validate/query;验证查询语句是否合法
/_validate/query?explain;查询计划,类似sql explain
查询建议
suggest属性;纠错、推荐。可有多个建议器,通过可有区分。
completion推荐,phrase纠正,term纠正。
term建议器;term
- text;内容
- field;字段
- analyzer;分析器
- suggest_mode;类型。missing默,popular,always
短语建议器;phrase
- text,field,analyzer;
推荐建议器;completion,不纠错,专用类型completion。
- field;字段
- prefix;推荐匹配前缀
- size;返回数量
聚合
bucket分组,metric指标,matrix矩阵,pipeline管道。
聚合可以嵌套。
指标
计算一组文档的指标值。数值聚合:单数值聚合、多数值聚合。
avg,max,min,sum;均值,最大值,最小值,总和。
- field,script
- missing;缺失时值;
- value_type;为脚本确定值类型。string、long、double、date、IP、boolean
weight_avg;加权平均值。
- value;值,可为多值字段。
- weight;权重,必须是单个值,多值字段时使用脚本计算为单值。
- format;返回数值格式
- value_type;值类型
cardinality;统计不同值个数,hyperloglog++计数,count(distinct name)。
- field,missing,script;
- precision_threshold;精度阈值,超过时模糊。3000默,40000最大。
extended_stats;扩展统计汇总,多值聚合。增加方差、标准差等。
- field,missing,script。
- sigma;统计相关系数
percentiles;计算指定字段百分值的数值,多值聚合。返回百分比-数值。
- field,script,missing
- percents;计算指定百分值数组。[ 1, 5, 25, 50, 75, 95, 99 ]默
- keyed;以对象形式返回,key为百分值。true默,false以对象数组返回。
pecentile_ranks;计算指定字段值百分值,多值聚合。返回数值-百分比。
- field,keyed,script,missing
- values,待计算的字段值数组。
scripted_metric;脚本计算。
stats;统计汇总,多值,包括:min,max,sum,count和avg。
- field,script,missing
top_hits;最好匹配聚合。类似分组后分页。
- from;偏移量。
- size;返回数量,3默
- sort;排序,默认按查询分数
- _source;返回字段数组
value_count;值个数统计。多值字段,统计所有文档的值个数之和
- field,script
- 不支持missing,null时个数为0
桶
分组,结果集集合。单桶(children,filter,global,missing,reverse_nested),多桶。
adjacency_matrix;邻接矩阵聚合,无向加权图。默认&分隔,低值在前。桶文档数为0时不显示桶。
- filters;命名过滤器集合,不支持数组形式。
children;join类型的聚合。
- type;join名
date_histogram;日期直方图,按日期间隔聚合。
- field,format,keyed,script,missing,order;
- interval;日期间隔。ms,s,m分,h,d,w周,M月,q季度,y
- timezone;时区
- offset;时间偏移量
- 按dayOfWeek分组,脚本获取dayOfWeek:“doc[‘date’].value.dayOfWeek”
date_range;日期范围
- field,format,missing,keyed
- ranges;日期范围数组。from、to、key,含头不含尾;可只指定from或to。
- now-10M/M,当前时间减10个月,取月
filter;单桶聚合。聚合前过滤,只能返回一个桶。
- 顶级元素post_filter,返回搜索结果前过滤;
- 过滤器,搜索时过滤。
filters;多桶聚合。
- filters;过滤器集合,可为命名过滤器集合,也可为过滤器数组。
- other_bucket;返回其他桶。false默
- other_bucket_key;其他桶键名,_other_默
global;全局桶。返回索引中全部文档的集合。
histogram;直方图。按间隔聚合。
- field,interval,keyed,missing,order
- min_doc_count;最少文档数,低于时不输出。0默
- extended_bound;扩展边界。min_doc_count=0时有意义,扩展x轴。
ip_range;按ip范围聚合
- field,keyed
- ranges;范围数组。from-to,或mask分组。
missing;无指定字段聚合,单桶。
- field
nested;嵌套对象聚合
- path;嵌套字段名
range;范围聚合
- field,keyed,script
- ranges;范围数组。from-to
reverse_nested;反向嵌套聚合,nested聚合中使用。获取嵌套对象的父对象结果集。
simpler;采样聚合。不可嵌套在breadth_first中。
- shard_size;采样条数,从高分开始。
significant_terms;重要术语聚合。big_前缀为全局汇总量。前景,query、父聚合;背景,聚合字段 - field。
terms;term聚合。 - field,size、order、min_doc_count
管道
汇总其他聚合及指标。父级管道(derivative,moving_fn,cumulative_sum,bucket_selector,bucket_sort)、兄弟管道。
父级管道,兄弟管道;按管道要求的聚合区分。
参数:
- buckets_path;桶路径,聚合分隔符>,指标分隔符点号.。聚合名中有点号时,用[]括起
- gap_policy;缺口策略,skip跳过,insert_zeros插0。默认skip
avg_bucket、max_bucket、min_bucket、sum_bucket;兄弟聚合,要求兄弟必须是多桶聚合。
- buckets_path,gap_policy,format
derivative;导数,父级聚合。histogram、date_histogram导数。 - buckets_path,gap_policy,format
- 导数聚合中桶路径使用另一个导数聚合,为二阶导数。
stats_bucket,extended_stats_bucket;统计桶聚合;兄弟聚合。
- buckets_path,gap_policy,format,sigma;
percentiles_bucket;百分比桶聚合,兄弟聚合。
- buckets_path,gap_policy,format,percents
moving_fn;移动函数聚合,处理有序数据。父级聚合。histogram,date_histogram中。
- buckets_path;
- window;窗口大小,
- script;脚本,处理窗口中的数据。MovingFunctions.min,max等预定义函数,也可自行定义。
cumulative_sum;累计总和。父级聚合。histogram,date_histogram中。
bucket_selector;桶筛选。父级聚合。
- buckets_path;对象,key为变量名,value为字段。在script中通过params引用。
- script;脚本,返回boolean。params.key引用字段值。
bucket_sort;桶排序。父级聚合。
- sort;排序字段数组
- from,size;返回限制
聚合脚本
script属性:
- lang;指定脚本语言
- source;脚本语句
- params;参数
脚本内变量
- doc;文档。doc.name.value,获取name属性值。
- params;引用scripts.params中定义的变量。params.name
- _value;引用field字段值。
API
API约定
_all;全部索引
index1,index2;多索引
index*,-index1;匹配index开头的索引,去除index1
url参数:
- ignore_unavailable;忽略不可达。true、false
- allow_no_indices;无匹配索引时是否报错;true、false
- expand_wildcards;匹配哪种索引。open,closed,none,all(open,closed)
Document API
_create;put指定创建
_update;post指定更新
_delete_by_query;查询后删除
_update_by_query;查询后更新
_mget;多查询
_bulk;批量操作
_reindex;重新索引
_termvectors;获取term信息
_mtermvectors;获取多个term信息
Search APIs
_search;搜索
_search_shards;执行搜索的分片信息
_count;计数
_validate/query;验证搜索;_validate/query?explain,解释
_explain;解释搜索与文档的关联,分数计算等
_field_caps;多个索引中检索字段
_rank_eval;排名
indices APIs
索引管理
PUT/DELETE/GET/HEAD indexName;增、删、查、存在
/{index}/_close、_open;关闭、打开
_shrink;收缩索引到新索引
_split;拆分索引到新索引
_rollover;过渡别名到新索引
配置管理
PUT/GET/HEAD _mapping;设置、获取、存在
_alias、_aliases;别名
PUT/GET _settings;设置、获取
_analyze;分析器分析
_template;索引模板
监控
_stats ;索引统计信息
_segments;段信息
_recovery ;恢复信息
_shard_stores;分片存储信息
状态管理
_cache/clear;清除缓存
_flush;文件缓冲区信息刷入磁盘
_refresh;缓存数据刷入文件缓冲区
_forcemerge;合并分段
cat APIs
查看信息
_cat;列出所有cat命令。参数:v标题输出,help显示输出列,h=Cols规定输出列
/_cat/aliases/{alias};别名
/_cat/allocation;节点分片数、存储信息
/_cat/count;文档数
/_cat/fielddata;fielddata使用的内存
/_cat/health;集群健康
/_cat/indices;全部索引
/_cat/master;主节点
/_cat/nodeattrs;节点属性
/_cat/nodes;集群拓扑信息
/_cat/pending_tasks;待处理任务
/_cat/plugins;插件
/_cat/recovery;恢复情况
/_cat/repositories;全部快照信息
/_cat/snapshots/repo1;指定库快照
/_cat/thread_pool;集群线程池信息
/_cat/shards;分片位置信息
/_cat/segments;段信息
/_cat/templates;索引模板
Cluster APIs
集群
/_cluster/health;集群健康
/_cluster/state;集群状态
/_cluster/stats;集群统计信息
/_cluster/pending_tasks;待处理任务
/_cluster/reroute;移动分片
/_cluster/allocation/explain;集群分配解释
GET/PUT /_cluster/settings;获取、修改集群配置
节点
/_nodes/stats;节点统计信息。/_nodes/nodeId1,nodeId2/stats
/_nodes;节点信息
/_nodes/usage;功能使用信息
/_nodes/hot_threads;节点热线程信息
其他
/_remote/info;集群信息
_tasks;当前任务
索引配置
其他配置,settings,mappings
settings
static;静态配置,创建索引、关闭索引时才可修改
dynamic;动态配置。
https://www.elastic.co/guide/en/elasticsearch/reference/6.4/index-modules.html#_static_index_settings
static
number_of_shards;主分片数,5默
analysis;自定义分析器。全局<索引<字段
shard.check_on_startup;启动时检测;false默,checksum检查物理损坏,true检查物理和逻辑损坏,fix检查损坏并删除损坏。
codec;编码方式
routing_partition_size;自定义路由可到达的分片数,1默
load_fixed_bitset_filters_eagerly;为嵌套查询预加载缓存,true默
dynamic
number_of_replicas;副本数,1默。
auto_expand_replicas;自动扩展副本数。false默,0-5上下限
refresh_interval;刷新频率,缓冲区–文档写入缓存区;1默,-1禁用
blocks系列;阻塞对索引的操作
routing系列;路由策略
priority;恢复优先级。正比。
search.slowlog.,indexing.slowlog.;查询慢日志,索引慢日志;默认禁用。
translog系列;传输日志,持久化。
mappings
根属性
_index,_type,_id,_uid;元数据
_source;源文档信息。_source{ excludes: [fNames]}},只索引不存储
properties;映射信息
dynamic;动态映射。true默,false,strict
date_detection;日期检测
dynamic_date_formats;日期格式
number_detection;数值检测
字段属性
type;数据类型。string、number、date、boolean、binary、range、object/nested
analyzer;索引分析器
search_analyzer;查询分析器,默认analyzer
normalizer;text转keyword
boost;权重
index;是否索引,true默,false不允许搜索
index_options;倒排索引信息。docs、freqs、positions、offsets;前包。
format;日期格式化
coerce;类型强转
copy_to;复制字段,组合多个字段
doc_values;存储与_source字段相同的数据,非analyzed字段的正向索引。true默
store;单独存储,一般用于大字段,只索引不返回,在_source中排除。
enabled;对object类型,只存储不索引。
fields;多重字段,下级字段
ignore_above;索引、排序时忽略超长部分
ignore_malformed;忽略类型错误,对应字段设为null
norms;存储计算得分的信息;true默
null;null值替换形式。null不可存储,存替换字符串。
position_increment_gap;短语查询间距,优先级小于slop
properties;映射,object、nested类型使用。
term_vector;存储匹配的term信息,便于后续使用,如高亮。no默,yes,with_positions/offsets/positions_offsets
其他配置
aliases;别名
分析器
字符过滤器,分词器,标准化过滤器
GET /_analyze { analyzer, text};测试分析器
内建分析器
分词 | 标准化 | |
Standard | Unicode | Text |
Simple | 非字母字符 | 转小写 |
Whitespace | 空格 | 无 |
Stop | 非字母字符 | 转小写,删除停用词 |
Keyword | 不分词,原样返回 | 无 |
Pattern | 正则分词 | 转小写,删除停用词 |
Language | 特定语言的分析器,如english、french | |
Fingerprint | 特殊分析器,检查重复 |
配置内建分析器
{
"settings": {
"analysis": {
"analyzer": {
"std_english": {
"type": "standard",#分析器类型
"stopwords": "_english_" #停用词类型
}
}
}
}
}