Elasticsearch查询
Elasticsearch 是一个基于 Apache Lucene 的搜索和分析引擎,它使你可以快速、近乎实时地存储、搜索和分析大量数据。
以下是一些常见的 Elasticsearch 查询示例:
- 查询所有文档的所有字段
GET /_search
{
"query": {
"match_all": {}
}
}
- 查询特定字段
GET /_search
{
"query": {
"match": {
"title": "Elasticsearch"
}
}
}
- 查询多个特定字段
GET /_search
{
"query": {
"multi_match": {
"query": "Elasticsearch",
"fields": ["title", "body"]
}
}
}
- 查询特定字段的特定值
GET /_search
{
"query": {
"term": {
"user.id": "kimchy"
}
}
}
- 查询特定范围的值
GET /_search
{
"query": {
"range": {
"age": {
"gte": 10,
"lte": 20
}
}
}
}
- 查询有特定值的文档
GET /_search
{
"query": {
"exists": {
"field": "user"
}
}
}
- 查询包含特定文本的文档
GET /_search
{
"query": {
"wildcard": {
"user.id": "ki*y"
}
}
}
- 查询具有特定查询的文档
GET /_search
{
"query": {
"bool": {
"must": {
"match": {
"title": "Elasticsearch"
}
},
"filter": {
"range": {
"date": {
"gte": "2014-01-01"
}
}
}
}
}
}
- 查询特定字段的前N个值
GET /_search
{
"size": 0,
"aggs": {
"popular_colors": {
"terms": {
"field": "color",
"size": 5
}
}
}
}
- 查询特定字段的平均值
GET /_search
{
"size": 0,
"aggs": {
"average_grade": {
"avg": {
"field": "grade"
}
}
}
}
注意:所有的查询都需要发送到Elasticsearch的\_search端点,并且查询语句需要遵循Elasticsearch的查询语言(Elasticsearch Query DSL)。
以上只是一些基础的查询示例,Elasticsearch 还支持更多复杂的查询,如地理位置查询、更复杂的聚合查询等。
评论已关闭