Elasticsearch 基本使用条件查询_es条件查询
在Elasticsearch中,条件查询是通过查询DSL(Domain-Specific Language)来实现的。以下是一些常见的条件查询以及相应的Elasticsearch查询DSL示例。
- 匹配查询(match query)
匹配查询是一种基于全文索引的查询,用于搜索包含指定文本的文档。
GET /_search
{
"query": {
"match": {
"content": "Elasticsearch"
}
}
}
- 条件过滤查询(bool query)
布尔查询允许你合并多个查询子句,以实现AND, OR, 和 NOT等逻辑操作。
GET /_search
{
"query": {
"bool": {
"must": { "match": { "title": "Elasticsearch" }},
"must_not": { "match": { "title": "Bonsai" }},
"should": [
{ "match": { "content": "Elasticsearch" }},
{ "match": { "content": "Solr" }}
]
}
}
}
- 范围查询(range query)
范围查询可以用来查找在指定数值或时间范围内的文档。
GET /_search
{
"query": {
"range": {
"age": {
"gte": 10,
"lte": 20,
"boost": 2.0
}
}
}
}
- 前缀查询(prefix query)
前缀查询可以用来查找字段值以特定前缀开头的文档。
GET /_search
{
"query": {
"prefix": {
"title": {
"value": "Elastic"
}
}
}
}
- 通配符查询(wildcard query)
通配符查询允许你使用通配符来匹配字段值。
GET /_search
{
"query": {
"wildcard": {
"title": {
"value": "Elastic*search"
}
}
}
}
- 正则表达式查询(regexp query)
正则表达式查询允许你使用正则表达式来匹配字段值。
GET /_search
{
"query": {
"regexp": {
"name.first": {
"value": "s.*y"
}
}
}
}
这些查询都是Elasticsearch中常用的查询类型,你可以根据实际需求选择合适的查询类型来构建你的搜索请求。
评论已关闭