Elasticsearch 5.0-简单查询

Elasticsearch 5.0-简单查询

标签 : Elasticsearch



本文是 Elasticsearch 5.0 系列博文的简单查询篇,主要介绍如何使用 Elasticsearch 进行简单查询

写在前面

  • 本文以 Elasticsearch 5.0.1 版本为例进行讲解,不定期更新
  • 该系列主要参考的 Elasticsearch Reference: 5.0,尽量避免照搬翻译,只摘录精要部分辅以简单说明
  • 写这个系列博客的初衷是强迫自己梳理,同时方便一些较忙/没空耐心看英文文档的朋友快速上手,建议读者有空多读官方文档,毕竟别人写的都是二手资料
  • 如需查看 ES 系列更多博文,请关注我的个人网站@brianway 或者 @优快云

数据准备

随机 json 数据生成网站 www.json-generator.com

可以从官网下载数据 accounts.json,然后使用 _bulk api 建立索引即可

curl -O https://raw.githubusercontent.com/elastic/elasticsearch/master/docs/src/test/resources/accounts.json
curl -XPOST 'localhost:9200/bank/account/_bulk?pretty&refresh' --data-binary "@accounts.json"
curl 'localhost:9200/_cat/indices?v'

查询API

两种执行 search 的方式:

  • 通过 REST request URI 发送查询参数
  • 通过 REST request body发送查询参数
# returns all documents in the bank index
GET /bank/_search?q=*&sort=account_number:asc

# using the alternative request body method
GET<
### Spring Data Elasticsearch 5.0 使用指南及问题解决 Spring Data Elasticsearch 是 Spring Data 系列中的一个重要模块,用于简化与 Elasticsearch 的交互。然而,在使用 Spring Data Elasticsearch 时,尤其是在特定版本如 5.x 中,可能会遇到一些兼容性和配置问题。以下是关于 Spring Data Elasticsearch 5.0 的使用指南和常见问题的解决方案。 #### 1. 版本兼容性问题 当在项目中同时使用 Spring Data JPA 和 Spring Data Elasticsearch 时,可能会出现版本冲突问题。这是因为 Spring Data Commons 的版本可能不兼容 Elasticsearch 客户端版本[^1]。为了解决此问题,可以手动调整依赖版本或直接使用 Elasticsearch 官方客户端操作 Elasticsearch 5.x。 ```xml <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>transport</artifactId> <version>5.6.3</version> </dependency> ``` #### 2. Maven 配置 为了确保项目的稳定性,建议明确指定依赖版本以避免潜在的冲突。以下是一个典型的 Maven 配置示例: ```xml <dependencies> <!-- Spring Data Elasticsearch --> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-elasticsearch</artifactId> <version>5.0.0</version> </dependency> <!-- Elasticsearch Transport Client --> <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>transport</artifactId> <version>5.6.3</version> </dependency> <!-- 其他依赖 --> </dependencies> ``` #### 3. 配置文件 在 `application.yml` 或 `application.properties` 文件中配置 Elasticsearch 连接信息是必要的。以下是一个示例配置: ```yaml spring: data: elasticsearch: cluster-nodes: localhost:9300 cluster-name: elasticsearch ``` 如果需要更复杂的配置,例如设置多个节点或启用 SSL,则需要进一步扩展配置[^2]。 #### 4. 实体类与索引映射 创建实体类并定义索引映射是使用 Spring Data Elasticsearch 的关键步骤之一。以下是一个简单的实体类示例: ```java import org.springframework.data.annotation.Id; import org.springframework.data.elasticsearch.annotations.Document; import org.springframework.data.elasticsearch.annotations.Field; import org.springframework.data.elasticsearch.annotations.FieldType; @Document(indexName = "example", type = "_doc") public class ExampleEntity { @Id private String id; @Field(type = FieldType.Text) private String name; // Getters and Setters } ``` #### 5. 基本操作 Spring Data Elasticsearch 提供了丰富的接口来执行增删改查操作。例如,通过继承 `ElasticsearchRepository` 接口可以轻松实现 CRUD 功能: ```java import org.springframework.data.elasticsearch.repository.ElasticsearchRepository; public interface ExampleRepository extends ElasticsearchRepository<ExampleEntity, String> { } ``` #### 6. 搜索功能 Spring Data Elasticsearch 支持多种搜索方式,包括全文搜索、分页查询等。以下是一个简单的搜索示例: ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class ExampleService { @Autowired private ExampleRepository exampleRepository; public List<ExampleEntity> searchByName(String name) { return exampleRepository.search(name); } } ``` #### 7. Kibana 集成 Kibana 是一个强大的工具,用于可视化 Elasticsearch 数据。通过配置 Kibana,可以方便地查看和分析数据。以下是 Kibana 的基本配置示例[^3]: ```yaml server.port: 5601 elasticsearch.hosts: ["http://localhost:9200"] kibana.index: ".kibana" i18n.locale: "zh-CN" ``` 启动 Kibana 后,可以通过浏览器访问 `http://localhost:5601` 来查看和分析数据。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值