Elasticsearch常用功能

当使用 Elasticsearch 的 Web API 进行交互时,以下是一些常用的功能和关键字:

1. 索引管理

1.1 - PUT /{index}:创建一个新的索引。

如果重复发 PUT 请求 : http://127.0.0.1:9200/{index} 添加索引,会返回错误信息 :

1.2 - GET /{index}:获取索引的信息。

1.3 - DELETE /{index}:删除一个索引。

2. 文档管理

2.1 - PUT&POST /{index}/_doc/{id}:创建或更新一个文档。

需要带一个请求体

{
    "title":"小米手机",
    "category":"小米",
    "images":"http://www.gulixueyuan.com/xm.jpg",
    "price":3999.00
}

使用PUT只能创建文档,使用POST可以更新文档

2.2 - GET /{index}/_doc/{id}:获取一个文档。

这里的ID和2.1的ID一样,都得是唯一ID

2.3 - DELETE /{index}/_doc/{id}:删除一个文档。

3. 搜索

3.1 - GET /{index}/_search:执行搜索操作。

直接返回全部数据,默认有分页size=10

3.2 - POST /{index}/_search:执行搜索操作(使用请求体)。

可以参考ElasticSearch常用的几种查询方式,常见的查询方式有
1 term查询(精准查询)
2 math查询(分词匹配查询)
3 fuzzy查询(模糊查询)
4 wildcard(通配符查询)
5 bool查询(布尔查询)

{
  "query": { // 定义查询条件的主体
    "bool": { // 布尔查询组合多个子句
      "must": [ // 匹配所有指定查询子句,相当于逻辑与
        {
          "match": {
            "field1": "value1"
          }
        },
        {
          "range": { // 查询范围
          // gt:大于(greater than)
		  // gte:大于等于(greater than or equal)
		  // lt::小于(less than)
		  // lte:小于等于(less than or equal)
		  // eq:等于(equal)
		  // neq:不等于
            "field2": {
              "gte": 10,
              "lte": 20
            }
          }
        }
      ],
      "filter": [ // 定义过滤器,排除不符合条件的文档
        {
          "term": { // 精确匹配指定字段
            "field3": "value3"
          }
        }
      ]
    }
  },
  "sort": [ // 排序规则
    {
      "field4": {
        "order": "asc"
      }
    }
  ],
  "size": 10,
  "from": 0, // 指定结果从第几个文档开始返回
  "_source": ["field5", "field6"] // 要返回的字段列表
}

  • 查询关键字:matchtermrangeboolfilter 等。

4. 聚合:

4.1 - GET /{index}/_search:结合聚合操作执行搜索和聚合。

{
	"aggs":{//聚合操作
		"price_group":{//名称,随意起名
			"terms":{//分组
				"field":"price"//分组字段
			}
		}
	}
}
  • POST /{index}/_search:结合聚合操作执行搜索和聚合(使用请求体)。
  • 聚合关键字:aggstermsdate_histogramsumavgmaxmin 等。
  1. 排序与分页:

    • GET /{index}/_search:通过 sort 参数指定排序方式。
    • GET /{index}/_search:通过 fromsize 参数指定分页。
  2. 过滤与条件:

    • GET /{index}/_search:通过 filter 参数进行过滤操作。
    • GET /{index}/_search:通过 query 参数指定查询条件。
  3. 更新与删除:

    • POST /{index}/_update/{id}:更新一个文档。
    • POST /{index}/_delete/{id}:删除一个文档。
  4. 批量操作:

    • POST /_bulk:执行批量操作,包括创建、更新和删除文档。
  5. 索引设置与映射:

    • PUT /{index}/_settings:修改索引的设置。
    • PUT /{index}/_mapping:定义索引的映射。
# PUT http://127.0.0.1:9200/user/_mapping

{
    "properties": {
        "name":{
        	"type": "text",
        	"index": true
        },
        "sex":{
        	"type": "keyword",
        	"index": true
        },
        "tel":{
        	"type": "keyword",
        	"index": false
        }
    }
}

name是text格式,可以被索引。
sex是keyword格式,不会被分词索引,只能被完全匹配

至于tel,被设置成inedx=false,因此无法在搜索的时候被索引。

  1. 聚合分析与统计:
    • GET /{index}/_stats:获取索引的统计信息。
    • GET /_nodes/stats:获取节点的统计信息。

这只是一些常见的功能和关键字,Elasticsearch 的 Web API 还提供了更多高级功能和查询语法,以满足各种复杂的搜索和分析需求。您可以参考 Elasticsearch 的官方文档以获取更详细的信息和示例。

你可能感兴趣的:(elasticsearch,大数据,搜索引擎)