Elasticsearch 全文检索操作指南
在管理 Elasticsearch 索引时,执行高效的全文检索是核心技能。我们通常向索引库后追加 _search 路径发送 GET 请求,并携带 JSON 格式的请求体来指定查询条件。如果没有参数,则返回全部文档;若有参数,则仅返回符合条件的结果。
基础检索与命令演示
查询数据本质上是一个 JSON 对象。为了方便管理,建议将复杂的查询语句保存为 search.json 文件,通过 -d @filename 参数传递给 curl,避免命令行过长。
例如,查询 description 字段包含'村长'的文档:
{
"query": {
"match": {
"description": "村长"
}
}
}
使用 curl 执行请求(注意替换实际密码):
curl -k -u elastic:your_password -X GET https://localhost:9200/ljh_index/_search \
-d @search.json -H "Content-Type: application/json"
其中 -k 忽略 SSL 证书验证,-u 提供认证凭证。Postman 等工具同样支持此流程,只需在 Body 中选择 raw JSON 格式即可。
常用查询语法详解
Elasticsearch 摒弃了旧版 Lucene 语法,全面采用标准 JSON DSL。以下是几种最常用的查询类型。
Match 普通关键字查询
match 会对查询文本进行分词处理。默认情况下,只要文档中包含任意一个分词后的词即可匹配(相当于 OR 逻辑)。
若需强制所有分词同时存在(AND 逻辑),可设置 operator 参数:
{
"query": {
"match": {
"description": {
"query": "完全覆盖热门",
"operator":


