6.ES基本操作-查询
Published on: | Views: 48查询所有文档
GET /$index/_search
{
'query': {
'match_all': {
'boost': 1
}
}
}
$index: 索引名 $fieldName: 文档字段名 query: 指定查询条件 match_all: 指定匹配所有数据 boost: 指定返回的分值固定为1
精确查询(term)
GET /$index/_search
{
'query': {
'term': {
'$fieldName': {
'value': $fieldValue
}
}
}
}
使用值$fieldValue精确查询$fieldName字段
多值精确查询(terms)
GET /$index/_search
{
'query': {
'terms': {
'$fieldName': [$fieldValue1, $fieldValue2]
}
}
}
文本匹配查询(match)
会对关键词分词后再查询
GET /$index/_search
{
'query': {
'match': {
'$fieldName': $fieldValue2
}
}
}
范围查询(range)
GET /$index/_search
{
'query': {
'range': {
'$fieldName': {
'gt': $value1,
'lt': $value2,
}
}
}
}
gt(>)和lt(<)是比较符,另外还有gte(>=), lte(<=)
非空查询(exists)
字段为空的判断: 值不存在 || 值为null || 值为[] || 值为[null]
GET /$index/_search
{
'query': {
'exists': {
'field': '$fieldName'
}
}
}
多条件查询(bool)
https://www.elastic.co/guide/en/elasticsearch/reference/8.8/query-dsl-bool-query.html 由多个子查询构成 |子查询类型|功能| |-|-| |must|必须匹配此查询条件| |should|可以匹配此查询条件| |must not|必须不匹配此查询条件| |filter|必须匹配此条件,但结果不会打分|
查询语法
GET /$index/_search
{
'query': {
'bool': {
'子查询类型': [
{
子查询1
},
{
子查询2
}
]
}
}
}
例如:
{
'query': {
'bool': {
'must': [
{
'term': {
'city': {
'value': '北京市'
}
}
},
{
'term': {
'business_district': {
'value': '大同胡同'
}
}
}
]
}
}
}
should查询可以使用minimum_should_match指定最少需要匹配的项数。 filter查询不会打分,所有文档都是0,但是可以使用constant_score设置为固定分数
指定返回的字段列表
可以用_source在查询参数中指定要返回的字段列表,例如:
GET /$index/_search
{
'_source':['title','city']
'query': {
'match_all': {
'boost': 1
}
}
}
对结果分页
使用from和size参数分页 from从0开始, 示例
{
'from': 0,
'size': 10,
'query': {
'match_all': {
}
}
}