admin 管理员组

文章数量: 1184232


2024年1月5日发(作者:dos命令包括)

es restful查询语法

ES(Elasticsearch)的RESTful查询语法是一种基于HTTP协议的查询方式,其主要作用是用于查询Elasticsearch中存储的数据。ES的查询语法非常灵活,可以根据不同的需求进行自定义配置。以下是ES RESTful查询语法的详细介绍:

1. 查询语法格式

ES RESTful查询语法的基本格式如下:

```

GET /index/type/_search

{

'query': {

// 查询条件

}

}

```

其中,`GET`表示请求方式,`/index/type/_search`表示查询路径,`query`表示查询条件。

2. 查询条件

ES RESTful查询语法的查询条件分为两种:`filter`和`query`。

`filter`是基于条件过滤的查询,不会对相关性评分产生影响,主要用于过滤数据。

`query`是基于搜索词项的查询,会对相关性评分产生影响,主 - 1 -

要用于查找数据。

以下是ES RESTful查询语法的常用查询条件:

- `match_all`查询:查询所有文档。

```

{

'query': {

'match_all': {}

}

}

```

- `match`查询:查询指定字段中包含给定词语的文档。

```

{

'query': {

'match': {

'title': 'elasticsearch'

}

}

}

```

- `term`查询:查询指定字段中包含给定词语的文档,不进行词项分析。

- 2 -

```

{

'query': {

'term': {

'title': 'elasticsearch'

}

}

}

```

- `range`查询:查询指定字段的值在给定范围内的文档。

```

{

'query': {

'range': {

'age': {

'gte': 18,

'lte': 30

}

}

}

}

```

- 3 -

- `bool`查询:使用逻辑运算符进行多条件查询。

```

{

'query': {

'bool': {

'must': [

{

'match': {

'title': 'elasticsearch'

}

},

{

'range': {

'age': {

'gte': 18,

'lte': 30

}

}

}

],

'must_not': [

{

- 4 -

'term': {

'gender': 'female'

}

}

],

'should': [

{

'term': {

'interests': 'music'

}

},

{

'term': {

'interests': 'sports'

}

}

],

'minimum_should_match': 1

}

}

}

```

- 5 -

3. 过滤条件

ES RESTful查询语法的过滤条件可以对查询结果进行进一步限制,主要用于过滤数据。

以下是ES RESTful查询语法的常用过滤条件:

- `term`过滤:过滤指定字段中包含给定词语的文档,不进行词项分析。

```

{

'query': {

'match_all': {}

},

'filter': {

'term': {

'title': 'elasticsearch'

}

}

}

```

- `range`过滤:过滤指定字段的值在给定范围内的文档。

```

{

'query': {

- 6 -

'match_all': {}

},

'filter': {

'range': {

'age': {

'gte': 18,

'lte': 30

}

}

}

}

```

- `bool`过滤:使用逻辑运算符进行多条件过滤。

```

{

'query': {

'match_all': {}

},

'filter': {

'bool': {

'must': [

{

- 7 -

'term': {

'gender': 'male'

}

},

{

'range': {

'age': {

'gte': 18,

'lte': 30

}

}

}

],

'must_not': [

{

'term': {

'interests': 'reading'

}

}

]

}

}

- 8 -

}

```

4. 排序条件

ES RESTful查询语法可以根据指定的字段进行升序或降序排列。

以下是ES RESTful查询语法的常用排序条件:

- 升序排列:

```

{

'query': {

'match_all': {}

},

'sort': {

'age': {

'order': 'asc'

}

}

}

```

- 降序排列:

```

{

'query': {

- 9 -

'match_all': {}

},

'sort': {

'age': {

'order': 'desc'

}

}

}

```

以上是ES RESTful查询语法的基本概念和常用操作,可以根据实际需求进行自定义配置。

- 10 -


本文标签: 查询 进行 过滤