Advertisement

Elasticsearch 5 学习笔记及 Java 操作 ES 增删改查示例

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:ZIP


简介:
本资料整理了Elasticsearch 5的学习笔记,并提供了Java代码示例用于操作ES进行数据的增删改查,适用于初学者快速入门。 **Elasticsearch 5 学习笔记** Elasticsearch 是一个开源的全文搜索引擎,以其分布式、实时、灵活以及强大的数据分析能力而广受赞誉。在版本 5 中,Elasticsearch 强化了搜索性能,优化了 API,并引入了一些新特性。本笔记将围绕 Elasticsearch 5 的核心概念和功能展开,特别是对于仍然使用或需要了解 Elasticsearch 5 的用户来说,这些内容非常实用。 1. **核心概念** - **索引(Index)**: 在Elasticsearch中,索引是一个存储文档的逻辑空间,类似于关系数据库中的表。 - **类型(Type)**: 类型是索引中的逻辑分类,尽管在 Elasticsearch 5 后已被弃用,在本笔记中仍然会提及以适应早期版本的使用场景。 - **文档(Document)**: 文档是存储在索引中的 JSON 对象,是Elasticsearch处理的基本单元。 - **节点(Node)**: 节点是运行 Elasticsearch 实例的服务器;多个节点可以组成一个集群。 - **集群(Cluster)**: 集群是一组共享相同配置并协同工作的节点,共同存储和处理数据。 2. **数据操作** - **创建索引**:使用 `PUT` 请求来创建一个新的索引,例如 `PUT my_index`。 - **添加文档**:通过 `POST` 或 `PUT` 请求将文档添加到指定的类型中,如 `POST my_index/doc/1` 或者 `PUT my_index/doc/2`。 - **查询文档**: 使用 `GET` 请求获取文档,如 `GET /my_index/_search?q=field:value` - **更新文档**:通过使用 `_update` 操作来部分更新一个文档的内容。 - **删除文档**:用 `DELETE` 请求删除指定的文档,例如 `DELETE my_index/doc/1` - **删除索引**: 使用 `DELETE` 请求彻底移除整个索引,如 `DELETE /my_index` 3. **Java API 连接与操作** - **连接**:使用 TransportClient 或 RestHighLevelClient 建立和 Elasticsearch 节点的连接。 - **创建索引**:通过调用 `client.admin().indices().prepareCreate()` 方法来创建一个新的索引 - **添加文档**: 使用 `IndexRequest` 类生成一个请求,然后利用 `client.index()` 执行该操作 - **查询**:使用 SearchRequest 和 SearchResponse 来执行搜索任务;QueryBuilder 用于构建具体的查询条件。 - **更新**: 利用 UpdateRequest 进行部分文档内容的修改,并通过调用 `client.update()` 完成更新动作 - **删除**: 使用 DeleteRequest 类来生成一个删除请求,然后使用 `client.delete()` 执行实际的删除操作。 4. **搜索功能** - **全文检索**:Elasticsearch 支持基于 TF-IDF 的全文检索,能够快速定位相关文档。 - **聚合分析**:提供一系列强大的聚合函数(如 terms、histogram 等)来执行数据统计和分析工作 - **过滤与排序**: 通过使用 `must`、`should` 和 `not` 这样的布尔操作符来进行条件筛选,同时也可以利用 `sort` 参数实现对结果的排序。 5. **分布式特性** - **自动分片及副本管理**:数据会根据需要被分散到多个节点上以提高可用性和容错性 - **路由和负载均衡**: 内置的路由算法确保了数据均匀分布,而负载平衡器则负责请求分配 6. **性能优化** - **映射配置**:通过选择合适的字段类型及分析器(例如使用 `not_analyzed` 字段实现精确匹配)来提高系统效率 - **索引设置**: 适当调整分片数、副本数量等参数,以达到存储和查询速度之间的平衡。 - **刷新策略**: 控制索引的刷新频率有助于优化写入性能。 **Java 对 Elasticsearch 的增删改查示例** Java API 提供了丰富的接口来与Elasticsearch进行交互。以下是一些基本操作的示例代码: ```java 创建TransportClient或RestHighLevelClient TransportClient client = new PreBuiltTransportClient(Settings.builder().build()) .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(localhost), 9300)); 创建索引 client.admin().indices().prepareCreate(my_index).execute().actionGet(); 添加文档 Map doc = new HashMap<>(); doc.put(field1, value1); IndexRequest indexRequest = new IndexRequest(my_index, _doc).source(doc); client.index(indexRequest).actionGet(); 查询文档 SearchResponse response = client.prepareSearch(my_index) .setQuery(QueryBuilders.matchQuery(field1,

全部评论 (0)

还没有任何评论哟~
客服
客服
  • Elasticsearch 5 Java ES
    优质
    本资料整理了Elasticsearch 5的学习笔记,并提供了Java代码示例用于操作ES进行数据的增删改查,适用于初学者快速入门。 **Elasticsearch 5 学习笔记** Elasticsearch 是一个开源的全文搜索引擎,以其分布式、实时、灵活以及强大的数据分析能力而广受赞誉。在版本 5 中,Elasticsearch 强化了搜索性能,优化了 API,并引入了一些新特性。本笔记将围绕 Elasticsearch 5 的核心概念和功能展开,特别是对于仍然使用或需要了解 Elasticsearch 5 的用户来说,这些内容非常实用。 1. **核心概念** - **索引(Index)**: 在Elasticsearch中,索引是一个存储文档的逻辑空间,类似于关系数据库中的表。 - **类型(Type)**: 类型是索引中的逻辑分类,尽管在 Elasticsearch 5 后已被弃用,在本笔记中仍然会提及以适应早期版本的使用场景。 - **文档(Document)**: 文档是存储在索引中的 JSON 对象,是Elasticsearch处理的基本单元。 - **节点(Node)**: 节点是运行 Elasticsearch 实例的服务器;多个节点可以组成一个集群。 - **集群(Cluster)**: 集群是一组共享相同配置并协同工作的节点,共同存储和处理数据。 2. **数据操作** - **创建索引**:使用 `PUT` 请求来创建一个新的索引,例如 `PUT my_index`。 - **添加文档**:通过 `POST` 或 `PUT` 请求将文档添加到指定的类型中,如 `POST my_index/doc/1` 或者 `PUT my_index/doc/2`。 - **查询文档**: 使用 `GET` 请求获取文档,如 `GET /my_index/_search?q=field:value` - **更新文档**:通过使用 `_update` 操作来部分更新一个文档的内容。 - **删除文档**:用 `DELETE` 请求删除指定的文档,例如 `DELETE my_index/doc/1` - **删除索引**: 使用 `DELETE` 请求彻底移除整个索引,如 `DELETE /my_index` 3. **Java API 连接与操作** - **连接**:使用 TransportClient 或 RestHighLevelClient 建立和 Elasticsearch 节点的连接。 - **创建索引**:通过调用 `client.admin().indices().prepareCreate()` 方法来创建一个新的索引 - **添加文档**: 使用 `IndexRequest` 类生成一个请求,然后利用 `client.index()` 执行该操作 - **查询**:使用 SearchRequest 和 SearchResponse 来执行搜索任务;QueryBuilder 用于构建具体的查询条件。 - **更新**: 利用 UpdateRequest 进行部分文档内容的修改,并通过调用 `client.update()` 完成更新动作 - **删除**: 使用 DeleteRequest 类来生成一个删除请求,然后使用 `client.delete()` 执行实际的删除操作。 4. **搜索功能** - **全文检索**:Elasticsearch 支持基于 TF-IDF 的全文检索,能够快速定位相关文档。 - **聚合分析**:提供一系列强大的聚合函数(如 terms、histogram 等)来执行数据统计和分析工作 - **过滤与排序**: 通过使用 `must`、`should` 和 `not` 这样的布尔操作符来进行条件筛选,同时也可以利用 `sort` 参数实现对结果的排序。 5. **分布式特性** - **自动分片及副本管理**:数据会根据需要被分散到多个节点上以提高可用性和容错性 - **路由和负载均衡**: 内置的路由算法确保了数据均匀分布,而负载平衡器则负责请求分配 6. **性能优化** - **映射配置**:通过选择合适的字段类型及分析器(例如使用 `not_analyzed` 字段实现精确匹配)来提高系统效率 - **索引设置**: 适当调整分片数、副本数量等参数,以达到存储和查询速度之间的平衡。 - **刷新策略**: 控制索引的刷新频率有助于优化写入性能。 **Java 对 Elasticsearch 的增删改查示例** Java API 提供了丰富的接口来与Elasticsearch进行交互。以下是一些基本操作的示例代码: ```java 创建TransportClient或RestHighLevelClient TransportClient client = new PreBuiltTransportClient(Settings.builder().build()) .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(localhost), 9300)); 创建索引 client.admin().indices().prepareCreate(my_index).execute().actionGet(); 添加文档 Map doc = new HashMap<>(); doc.put(field1, value1); IndexRequest indexRequest = new IndexRequest(my_index, _doc).source(doc); client.index(indexRequest).actionGet(); 查询文档 SearchResponse response = client.prepareSearch(my_index) .setQuery(QueryBuilders.matchQuery(field1,
  • Java
    优质
    本文章介绍了如何使用Java语言进行数据库的基本操作,包括增加、删除、修改和查询数据的方法与技巧。 Java连接数据库进行增删改查操作涉及使用JDBC或ORM框架如MyBatis、Hibernate等来实现与数据库的交互。首先需要导入相应的驱动包,并通过URL、用户名和密码创建一个到数据库的有效连接。之后,可以执行SQL语句来进行数据表的操作:插入(INSERT)、删除(DELETE)、更新(UPDATE)以及查询(SELECT)。在操作完成后记得关闭资源以释放内存空间。 这包括了编写具体的Java代码来构建这些功能,在实际项目中可能还会涉及到事务管理、异常处理等高级特性。
  • Node.jsMySQL的
    优质
    本教程详细讲解了如何使用Node.js进行数据库操作,重点介绍了连接MySQL、执行CRUD(创建、读取、更新和删除)操作的方法,并提供了实用代码示例。 首先需要安装mysql模块:`npm install mysql --save`。然后创建user数据表,并使用Node.js对数据库进行增删改查操作。 本段落介绍了如何利用Node.js与MySQL实现基本的数据库操作,包括SQL优化、深度学习以及数据科学的相关内容。文章旨在帮助开发者掌握在JavaScript环境中通过Node.js连接和管理MySQL数据库的方法和技术细节。 标签:nodejs, javascript实例, 数据库, mysql
  • 基于JDBC的Java
    优质
    本教程通过具体示例详细讲解了如何使用JDBC在Java应用程序中执行数据库的基本CRUD(创建、读取、更新、删除)操作。 本段落主要介绍了如何使用Java基于JDBC实现数据库的增删改查操作,并通过实例详细讲解了在Java中利用JDBC进行数据库连接及执行基本操作的方法。适合对此类技术感兴趣的读者参考学习。
  • .NET DataGridView(含).zip
    优质
    本资源包含一个ZIP文件,内含使用C#和.NET框架进行DataGridView控件基本操作的示例代码。通过详细的注释与实例演示了数据添加、删除、修改及查询功能,帮助开发者快速掌握其应用技巧。 .NET DataGridView增删改查实例:通过DataGridView控件连接数据库并对表进行操作(包括增加、删除、修改和查询)。
  • Java连接MongoDB详解实
    优质
    本教程详细介绍如何使用Java语言实现与MongoDB数据库的连接,并通过具体示例展示数据的增、删、改、查等基本操作。 本段落主要介绍了如何使用Java连接MongoDB并进行基本的增删改查操作,并结合实例详细讲解了在Java环境下下载、安装MongoDB扩展包以及执行相关数据库操作的方法。对于需要学习或参考这些内容的朋友来说,这是一份非常实用的指南。
  • Java Swing 中的
    优质
    本教程详细介绍了在Java Swing界面中进行数据的增加、删除、修改和查询的基本方法与应用技巧。适合初学者快速掌握Swing组件的数据管理技术。 自己使用Java Swing 编写了一个人可以进行增删改查操作的小项目。
  • Java中的LDAP
    优质
    本文章详细介绍了如何在Java程序中实现对LDAP服务器的数据进行增加、删除、修改和查询等基本操作,帮助开发者掌握LDAP与Java集成的方法。 Java 通过 JNDI(Java Naming and Directory Interface)支持 LDAP(Lightweight Directory Access Protocol),使开发者能够使用 Java 来操作LDAP服务器。LDAP 是一种常用的目录服务协议,用于存储网络上的用户、组、计算机等对象信息。 在 Java 中利用JNDI提供的LDAP实现可以实现在 LDAP 服务器上进行增删改查等各种操作。本段落中我们将讨论如何通过Java语言和 JNDI 对 LDAP 数据库执行这些基本的操作,并提供了一个简单的示例程序来展示连接到 LDAP 并完成一些基础工作的过程。 首先,需要导入必要的类库: ```java import java.util.Hashtable; import javax.naming.Context; import javax.naming.NamingException; import javax.naming.directory.DirContext; import javax.naming.directory.InitialDirContext; ``` 接着创建一个 `Hashtable` 对象以存储连接参数。这些信息包括服务器的URL、用户名和密码等: ```java Hashtable env = new Hashtable(); env.put(Context.INITIAL_CONTEXT_FACTORY, com.sun.jndi.ldap.LdapCtxFactory); env.put(Context.PROVIDER_URL, ldap://localhost/ + root); env.put(Context.SECURITY_AUTHENTICATION, simple); env.put(Context.SECURITY_PRINCIPAL, cn=Manager,o=tcl,c=cn); env.put(Context.SECURITY_CREDENTIALS, secret); ``` 使用这些信息,可以通过 `InitialDirContext` 类连接到 LDAP 服务器: ```java DirContext ctx = new InitialDirContext(env); ``` 成功建立连接后,可以开始执行增删改查等操作。 例如添加新的用户对象时,可调用 `bind()` 方法来创建新条目; 删除已有的用户则通过 `unbind()` 来实现; 修改信息的步骤是使用`modifyAttributes()`方法更新属性值。 查询LDAP目录内容可以用到的是搜索功能: ```java NamingEnumeration results = ctx.search(ou=people,o=tcl,c=cn, (objectClass=inetOrgPerson), new SearchControls()); ``` 通过这些示例,开发者能够理解如何利用 Java 和 JNDI 来操作 LDAP 服务。
  • Java中的List
    优质
    本教程详细介绍在Java编程语言中使用List接口进行常见的数据操作,包括添加、删除、修改和查询元素的方法。 使用LIST实现的增删改查功能适合初学者学习,但这种方法并不涉及数据库操作,仅用于对LIST进行练习。
  • Java Web中的
    优质
    本教程详细介绍了在Java Web开发中常用的数据库操作技术,包括增加、删除、修改和查询(CRUD)等核心功能的实现方法。 在Java Web项目中连接MySQL数据库并实现增删改查操作时,建议采用面向对象的方式进行封装。这种方式可以提高代码的可维护性和复用性,同时便于后续的功能扩展与调试。通过定义相应的数据模型类、DAO(Data Access Object)接口及其实现类等,可以使业务逻辑更加清晰,并且能够更好地遵循SOLID原则中的单一职责原则和开放封闭原则。