Elasticsearch基础操作与查询:索引、文档增删改查及模糊搜索

需积分: 8 0 下载量 5 浏览量 更新于2024-08-04 收藏 7KB TXT 举报
本文主要介绍了Elasticsearch (ES) 的基本查询操作,包括创建、查看、删除索引,定义字段类型,以及各种查询方法,如match、term、bool、should、and、put、post等。 在Elasticsearch中,首先需要创建一个索引。例如,创建名为"heima"的索引,可以使用以下PUT请求: ```json PUT /heima { "settings": { "number_of_shards": 3, "number_of_replicas": 2 } } ``` 这将创建一个包含3个主分片和2个副本分片的索引。 查看索引则通过GET请求实现,如: ```bash GET /heima ``` 删除索引的命令是: ```bash DELETE /heima ``` 接着,我们定义索引的映射(mapping),即数据库表结构。例如,创建一个名为"goods1"的文档类型: ```json PUT /heima/_doc/goods1 { "properties": { "title": { "type": "text", "analyzer": "ik_max_word" }, "images": { "type": "keyword", "index": "true" }, "price": { "type": "float" } } } ``` 这里,我们设置了"标题"字段为`text`类型,使用`ik_max_word`分词器;"图片"字段为`keyword`类型,可被索引;"价格"字段为`float`类型。 要向索引中添加数据,可以使用POST请求: ```json POST /heima/goods/ { "title": "小米手机", "images": "http://image.leyou.com/12479122.jpg", "price": 2699.00 } ``` 查询数据时,可以使用GET请求配合`_search`,比如查询所有数据: ```bash GET /heima/_search { "query": { "match_all": {} } } ``` 多字段查询允许在多个字段中搜索关键词: ```json GET /heima/_search { "query": { "multi_match": { "query": "小米手机", "fields": ["title", "images"] } } } ``` 对于多词条查询,可以使用`term`查询指定字段的精确值: ```json GET /heima/_search { "_source": { "includes": ["title", "price"] }, "query": { "term": { "price": 2699 } } } ``` 范围查找允许在某个范围内筛选数据: ```json GET /heima/_search { "query": { "range": { "price": { "gte": 1000.0, "lt": 2800.00 } } } } ``` 模糊查找则利用`fuzzy`查询,允许一定程度的拼写错误: ```json GET /heima/_search { "query": { "fuzzy": { "title": { "value": "小米手机", "fuzziness": "2" # 可以调整模糊度 } } } } ``` 以上就是Elasticsearch中的基本查询操作,包括创建、查看、删除索引,定义字段类型,以及各种查询方法的使用。这些操作构成了Elasticsearch数据管理与检索的基础。