19.Elasticsearch索引基础查询-1
2022-04-15 本文已影响0人
大勇任卷舒
19.1 REST API搜索示例
- 运行搜索有两种基本方法:一种是通过REST求URI发送检索参数,另一种是通过REST求体发送检索参数
- 用于搜索的REST API可从_search端点访问。下面的例子返回"bank"索引中的所有文档:
curl -X GET "localhost:9200/bank/_search?q=*&sort=account_number:asc&pretty“
- 我们在"bank"索引中检索,q=*参数表示匹配所有文档;sort=account_number:asc表示每个文档的account_number字段升序排序;pretty参数表示返回漂亮打印的JSON结果。
-
运行结果:
- 搜索参数解析:
- took : Elasticsearch执行搜索的时间(以毫秒为单位)
- timed_out : 告诉我们检索是否超时
- _shards : 告诉我们检索了多少分片,以及成功/失败的分片数各是多少
- hits : 检索的结果
- hits.total : 符合检索条件的文档总数
- hits.hits : 实际的检索结果数组(默认为前10个文档)
- hits.sort : 排序的key(如果按分值排序的话则不显示)
- hits._score 和 max_score 现在我们先忽略这些字段
19.2 DSL语句查询
- Elasticsearch提供丰富且灵活的查询语言叫做DSL查询(Query DSL),它允许构建更加复杂、强大的查询。
- DSL(Domain Specific Language特定领域语言)以JSON求体的形式出现。
19.2.1 DSL查询示例1
- 上一个例子,还可以这样查询
- 注:match_all部分是我们想要运行的查询类型。
curl -X GET "localhost:9200/bank/_search?pretty" -H 'Content-Type: application/json' -
d'
{
"query": { "match_all": {} },
"sort": [
{ "account_number": "asc" }
]
}
‘
19.2.2 DSL查询示例2
- 除了查询参数外,我们还可以传递其他参数来影响搜索结果。在上面部分的例子中,我们传的是sort参数,还能传递更多参数:
curl -X GET "localhost:9200/bank/_search?pretty" -H 'Content-Type: application/json' -
d'
{
"query": { "match_all": {} },
"from": 10,
"size": 10
}
'
19.2.3 DSL查询示例3
- 示例执行match_all,并按照帐户余额降序对结果进行排序,并返回前10个(默认大小)文档。
curl -X GET "localhost:9200/bank/_search?pretty" -H 'Content-Type: application/json' -
d'
{
"query": { "match_all": {} },
"sort": { "balance": { "order": "desc" } }
}
'
大数据视频推荐:
腾讯课堂
CSDN
ELK入门精讲
AIOps智能运维实战
ELK7 stack开发运维
大数据语音推荐:
ELK7 stack开发运维
企业级大数据技术应用
大数据机器学习案例之推荐系统
自然语言处理
大数据基础
人工智能:深度学习入门到精通