Elasticsearch的查询DSL(Domain-Specific Language)允许你构建复杂的查询。以下是一些基本的查询示例:
- 匹配所有文档的查询:
{
"query": {
"match_all": {}
}
}
- 匹配特定字段中包含特定文本的文档:
{
"query": {
"match": {
"title": "Elasticsearch"
}
}
}
- 布尔查询,可以组合多种条件(例如,must, should, must\_not):
{
"query": {
"bool": {
"must": [
{ "match": { "title": "Elasticsearch" }}
],
"filter": [
{ "term": { "status": "published" }}
]
}
}
}
- 范围查询,查找特定字段在某个范围内的文档:
{
"query": {
"range": {
"age": {
"gte": 10,
"lte": 20
}
}
}
}
- 高亮查询结果中的特定字段:
{
"query": {
"match": {
"title": "Elasticsearch"
}
},
"highlight": {
"fields": {
"title": {}
}
}
}
- 排序查询,根据特定字段对文档进行排序:
{
"query": {
"match_all": {}
},
"sort": [
{ "price": "asc" }
]
}
这些是Elasticsearch查询DSL的基础示例。根据需要,你可以组合和嵌套这些查询,以构建更复杂的搜索逻辑。