【ElasticSearch入门】4、SearchApi、搜索相关性、Uri search、RequestBody Search、Query String
一、SearchApi
URL Search
在 URL 中使用查询参数
Request Body Search
使用 Elasticsearch 提供的,基于 JSON 格式的格式更加完备的 Query Dpmain Specific Language (DSL)
1.1 URL 查询
- 使用 “q” , 指定查询字符串
- “query string syntax” , KV 键值对
1.2 Request Body
#REQUEST Body
POST kibana_sample_data_ecommerce/_search
{
"profile": true,
"query": {
"match_all": {
}
}
}
结果:
took:花费时间
total:命中结果数
hits: 命中结果集,默认前10个。
_index:索引名
_id: 文档ID
_score: 相关度评分
_source:文档原始信息。
二、搜索的相关性 Relevance
- 搜索是用户和搜索引擎的对话
- 用户关心的是搜索结果的相关性
- 是否找到所有相关的内容
- 有多少不相关的内容被返回了
- 文档的打分是否合理
- 结合业务需求,平衡结果排名
2.1WEB 搜索
-
Page Rank 算法
- 不仅仅是内容
- 更重要的是内容的可信度
2.2电商搜索
- 搜索引擎扮演 - 销售的角色
- 提高用户购物体验
- 提升网站的销售业绩
- 去库存
2.3衡量相关性
Information Retrieval.
- Precision (查准率) - 尽可能返回较少的无关文档
- Recall (查全率) - 尽量返回较多的相关文档
- Ranking - 是否能够按照相关度进行排序
三 URI Search
通过uri实现基本搜索
需要提前导入movie数据集,详细步骤请查看【ElasticSearch入门】1、elasticsearch、kibana、logstash的安装_脏鸡鸡的博客-CSDN博客
#基本查询
GET /movies/_search?q=2012&df=title&sort=year:desc&from=0&size=10&timeout=1s
#! Elasticsearch built-in security features are not enabled. Without authentication, your cluster could be accessible to anyone. See https://www.elastic.co/guide/en/elasticsearch/reference/7.13/security-minimal-setup.html to enable security.
{
"took" : 44,
"timed_out" : false,
"_shards" : {
"total" : 1,
"successful" : 1,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 2,
"relation" : "eq"
},
"max_score" : null,
"hits" : [
{
"_index" : "movies",
"_type" : "_doc",
"_id" : "105254",
"_score" : null,
"_source" : {
"id" : "105254",
"title" : "Crystal Fairy & the Magical Cactus and 2012",
"year" : 2013,
"genre" : [
"Adventure",
"Comedy"
],