1.Search API
- URL Search
- 在URL 中使用查询参数
- Request Body Search
- 使用Elasticsearch 提供的,基于JSON 格式的更加完备的Query Domain Specific Language (DSL)
1.1 指定查询的索引
语法 | 范围 |
---|---|
/_search | 集群上所有的索引 |
index1/_search | index1 |
index1,index2/_search | index1 和index2 |
index*/_search | 以index开头的索引 |
1.2 URI查询
使用
“q"
, 指定查询字符串 q 含义为 ”query string syntax"KV
键值对
1.3 Request Body
POST kibana_sample_data_ecommerce/_search
{
"query": {
"match_all": {}
}
}
# 返回结果
{
"took" : 129, // 花费时间 129 ms
"timed_out" : false,
"_shards" : {
"total" : 1,
"successful" : 1,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 4675, // 命中文档总数
"relation" : "eq" // 命中格式
},
"max_score" : 1.0,
"hits" : [ //默认显示10条相关的文档记录 这里省去
]
1.4 搜索的相关性
- 搜索是用户和搜索引擎的对话
- 用户关心的是搜索结果的相关性
- 是否可以找到所有相关的内容
- 有多少不相关的内容被返回
- 文档的打分是否合理
- 结合业务需求,平衡结果排名
1.4.1 Web搜索
Page Rank 算法, 不仅仅是内容 更重要的是内容的可信度
1.4.2 电商搜索
搜索引擎扮演-销售的角色
1.提高用户购物体验
2.提升网站销售业绩
3.去库存
1.4.3 衡量相关性
Precision(查准率) :尽可能返回较少无关文档
Recall(查全率):尽量返回较多相关的文档
Ranking :是否能够按照相关度进行排序
2 URI Search详解
GET /movies/_search?q=2012&df=title&sort=year:desc&from=0&size=10&timeout=1s
{
"profile": "true"
}
-
q
指定查询语句 -
df 默认字段,不指定时
-
Sort 排序