elasticsearch
2020-10-21 11:06:35 71 举报
AI智能生成
elasticsearch
作者其他创作
大纲/内容
开始
docker 搭环境
kibana dev tool
官方文档
第三方翻译中文文档
restful api手册
概念
简介
倒排索引
词索引文档id
正排索引
索引 indices
GET _cat/indices 查看全部索引
PUT /<index_name> 增加索引
GET /<index_name> 获取索引信息
DELETE /<index_name> 删除索引
HEAD /<index_name> 索引是否存在
不允许修改索引, 但是可以引入中间商来间接修改
文档
mapping
tips
database, type, document, fields. type这个概念被移除
Field data types 字段类型
Common types 通用类型
binary
base64 编码后的字符串, 默认不存储和不可搜索
boolean
true, "true"
false. "false", ""(空字符串)
keywords
keyword
不需要用来分词, 比如电子邮箱, 姓名, 编码, 标签
可以用于过滤, 排序, 聚合
constant_keyword
wildcard
numbers
整数
long, integer, short, byte
浮点
double, float, half_float, scaled_float
dates
date
支持自定义格式, 同时支持多种格式
支持毫秒级long/秒级int 时间戳, 非负
date nanos
alias
就是给字段取别名, 但是不能给别名取别名
Object and relational types 对象和关联类型
object
json
flattened
把一个json对象拉平来查询
nested
index arrays of objects
join
Structured data types 结构化数据类型
range
integer_range
float_range
long_range
double_range
date_range
date_range
ip_range
ip
支持ipv4, v6
murmur3
Aggregate data types 聚合数据类型
histogram
Text search types 文本搜索类型
text
用于全文索引搜索, 会分词
annotated-text
completion
search_as_you_type
token_count
Document ranking types
dense_vector
rank_feature
rank_features
Spatial data types 空间数据类型
geo_point
支持对象, 数组, 字符串, geohash, well-known text
geo_shape
point
shape
Other types
precolator
暂时看的云里雾里, 反正就是监听变化, 典型的就是购物车里的商品价格降了符合预期, 可以使用这个
arrays
数组里面的类型要一致
需要注意对象数组, 必要时使用nested代替
空数组当作missing field处理
多值字段和倒排索引
multi-fields
这个吊, 用于不同的目的用不同的方式索引同一个字段, 使用fields参数来实现
配置
type 字段类型
analyzer 指定分词器
boost 权重, 默认1
copy_to 自定义字段, 和其他字段拼接
dynamic 动态字段, 用于对象
doc_values 可以是聚合更高效, 内存更友好
enabled 用于对象, 是否被索引
fields
format 用于date, 指定格式
ignore_above 指定字段索引长度, 超过截断
ignore_malformed 忽略错误格式数据
null_value null,[],[null] 都是null, null不会存储到索引中, 为missing
properties 用于对象和nested
text analysis 文本分析
文本分析是将非结构化文本(如电子邮件正文或产品描述)转换为结构化格式以便于搜索的过程。他发生在索引和搜索的时候
分析器
Character filters 字符过滤器
例子: 过滤html tag, 转为 普通的文本
Tokenizer 分词
Token filter 词过滤器
比如把token转换为小写, 移除通用词, 增加同义词
stemming 词干
eg: walking and walked can be stemmed to same root word walk
eg 英文的去复数
测试
search
query
brief
高代价搜索, 尽量少用
script queries
会导致行扫描
fuzzy queries
regexp queries
prefix queries
wildcard queries
text, keyword上的range查询
joining queries
老式的geo shapes
script score queries
percolate queries
percolate queries
query context
解决匹配度的问题
filter context
解决是不是的问题
会缓存结果, 性能更好
bool.filter bool.must_not
constant_score
filter聚合
具名查询
在结果中会有matched_queries来标识
bool
must
必须匹配, 取交
should
可能匹配, 取并
filter
评分为0, 但是加上match_all可以拉升分数
must_not
同filter
minimum_should_match
full-text
match
match_phrase
match_phrase_prefix
multi_match
query_string
Boosting
constant_score
match_all/match_none
match_all为所有文档一个基础分, match_none就是全为假
term-level
exists
ids
range
term/terms
term set
minimum_should_match使用文档中的field来指定
geo
shape
Disjunction max query
term/terms
join 暂时云里雾里
多索引同时搜索
sort
pagination
from + size
scroll
highlighting 高亮
_source
Collapse
没看的太懂, 就是把字段放到顶级的fields里面?
索引模板
ik 中文分词
同义词
todo聚合
收藏
收藏
0 条评论
下一页