Elasticsearch的查询语句有以下常用的关键字:
match:用于对指定字段进行全文检索。可以指定查询的文本,也可以根据查询文本自动生成查询条件。例如:{"match": {"title": "elasticsearch"}}
term:用于对指定字段进行精确匹配。例如:{"term": {"status": "published"}}
range:用于对指定字段进行范围查询。例如:{"range": {"price": {"gte": 10, "lte": 100}}}
bool:用于组合多个查询条件,支持must、should、must_not三个子句。例如:{"bool": {"must": {"match": {"title": "elasticsearch"}}, "must_not": {"term": {"status": "deleted"}}, "should": {"term": {"category": "technology"}}}}
filter:用于对查询结果进行过滤,只返回符合条件的文档,不计算相关性得分。例如:{"bool": {"filter": {"range": {"price": {"gte": 10, "lte": 100}}}}}
sort:用于对查询结果进行排序。例如:{"sort": {"price": {"order": "desc"}}}
aggs:用于聚合分析,可以对指定字段进行统计、分组等操作。例如:{"aggs": {"category_count": {"terms": {"field": "category"}}}}
highlight:用于高亮显示查询结果中匹配的关键词。例如:{"highlight": {"fields": {"title": {}}}}
suggest:用于提供查询建议,根据用户输入的文本自动生成查询建议。例如:{"suggest": {"text": "elastc", "suggest_title": {"term": {"field": "title"}}}}
以上是Elasticsearch中常用的查询语句关键字,其中高亮显示和查询建议的关键字在答案中用了不同的颜色标记。