Advertisement

ElasticSearch 学习笔记。

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


简介:
ElasticSearch 学习笔记文章目录:ElasticSearch 学习笔记涵盖基本概念、倒排索引、超时设置、Query 与 Filter 的区别,以及全文检索、短语检索、高亮检索、分组检索等多种查询方式。此外,还包括平均值检索、区间检索、批量查询、查询排序、缓存机制、文档替换与删除等实用技巧。同时,文章深入探讨了 ES 路由查询和路由分词,以及 Mapping 映射的概念,包括查看 Mapping、Mapping 的创建和修改。最后,涉及 query 相关度算法和 elasticSearch 存储结构,具体分析了存储结构特点以及扩容方案,特别是垂直扩容(建议)和 shard 重新分配(rebalance)策略。文章还阐述了 master 节点及其 master 选举节点对等的分布式架构,并讨论了并发冲突下的乐观锁控制方法。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • Elasticsearch
    优质
    《Elasticsearch学习笔记》是一份详细的文档,记录了关于Elasticsearch搜索引擎的学习过程和心得。涵盖安装配置、API使用及索引查询等多方面内容,适合初学者参考学习。 ElasticSearch(简称ES)是一个开源的、高度可扩展的分布式全文检索引擎。它基于Java开发,并利用Lucene作为其核心,实现了高效的索引与搜索功能。通过RESTful API简化了与Lucene的交互,隐藏复杂的底层操作细节。 相比Solr,在建立大量数据索引时ElasticSearch表现更优,因为Solr可能会遇到IO阻塞问题。因此当需要进行大数据量全文搜索时,选择ElasticSearch更为合适。 安装步骤如下:首先确保系统中已安装Java 1.8或更高版本;下载并解压后双击bin/elasticsearch.bat启动程序,若浏览器能访问localhost:9200,则表示成功运行了ElasticSearch服务端。 为方便管理与可视化操作,可以考虑添加两个插件——Head和Kibana。其中,Head提供Web界面用于查看ElasticSearch状态;而Kibana则支持数据的图表展示功能。安装时需注意配置http.cors.enabled及http.cors.allow-origin以解决可能存在的跨域问题,并保证所选版本与主程序兼容。 在使用过程中需要理解几个核心概念:数据库对应于索引,表相当于类型,行代表文档,字段映射到files;分词是中文搜索的重要环节之一。IK分词器支持ik_smart(最少切分)和ik_max_word(最细粒度划分),并允许自定义词汇库。 对于操作方式推荐使用RESTful风格:PUT请求用于添加或更新文档、DELETE删除数据、GET进行查询等;创建索引时可发送JSON格式的PUT请求,例如PUT newindex_doc1。检索记录则通过携带参数的GET _search方法实现;更复杂的条件及排序需求可通过POST _search提交JSON体来完成。 以上就是关于ElasticSearch的基本介绍和操作指南。
  • Elasticsearch.pdf
    优质
    本PDF文档是关于Elasticsearch的学习总结和记录,包含了安装配置、索引管理、查询优化等实用教程与示例代码,适合初学者快速上手。 Elasticsearch笔记.pdf包含了关于Elasticsearch的详细学习资料和实践案例,适合初学者和技术爱好者参考使用。文档内容涵盖了安装配置、索引管理、查询优化等多个方面,并提供了大量的示例代码帮助读者更好地理解和掌握相关技术细节。
  • Elasticsearch
    优质
    Elasticsearch 学习记录是一份详细记载作者学习Elasticsearch过程中所遇到的技术问题、解决方案及心得体会的学习笔记。 ElasticSearch 学习笔记文章目录 - ElasticSearch 基本概念 - 倒排索引 - timeout 超时机制 - Query与filter的区别 - 全文检索 - 短语检索 - 高亮检索 - 分组检索 - 平均值的检索 - 区间检索 - 批量查询及查询缓存 - 查询排序 - 文档替换与删除 ES路由查询 - 路由分词 Mapping映射 - mapping的概念 - 查看mapping - 创建和修改mapping query相关度算法 ElasticSearch 存储结构 ElasticSearch存储特点及扩容方案 垂直扩容(建议) shard重新分配(rebalance) master节点 - master选举机制 对等的分布式架构 并发冲突控制 乐观锁
  • JDBC JDBC
    优质
    本笔记汇集了对Java数据库连接(JDBC)技术的学习心得与实践经验,旨在帮助初学者快速掌握JDBC的基础知识和高级特性。 JDBC 是 Java 语言访问数据库的一套接口集合,在本质上是调用者(程序员)与实现者(数据库厂商)之间的协议。由数据库厂商提供的驱动程序实现了 JDBC API,使得开发人员可以使用纯Java的方式连接并操作数据库。 ODBC 则是一种基于C语言的数据库访问接口,而JDBC 可以视为 Java 版本的 ODBC。JDBC 的特性包括高度一致性和简单性(常用的接口只有4、5个)。 在 JDBC 中有两个主要包:java.sql 和 javax.sql。 - **java.sql** 包含了用于基本数据库编程服务的类和接口,如生成连接、执行语句以及准备语句和运行批处理查询等。此外还包括一些高级功能,例如批处理更新、事务隔离及可滚动结果集等。 - **javax.sql** 提供了更多的高级操作接口与类,比如为连接管理、分布式事务和旧式连接提供更好的抽象,并引入容器管理的连接池、行集等功能。 以下是 JDBC 中几个重要的 API 说明: - `java.sql.Connection`:代表特定数据库的会话。能够通过 getMetaData 方法获取关于支持的 SQL 语法、存储过程及功能的信息。 - `java.sql.Driver`:每个驱动程序类都需要实现此接口,同时每一个数据库驱动应当提供一个实现了 Driver 接口的具体类。 - `java.sql.DriverManager`(Class):管理一组 JDBC 驱动的基本服务。作为初始化的一部分,它会尝试加载在 jdbc.drivers 系统属性中引用的驱动程序。 - `java.sql.Statement`:用于执行静态 SQL 语句并返回其生成的结果对象。 - `java.sql.PreparedStatement`:继承自 Statement 接口,表示预编译过的 SQL 语句的对象。可以高效地多次使用该对象来执行相同的语句。 - `java.sql.CallableStatement`:用来访问数据库中的存储过程,并提供指定输入/输出参数的方法。 - `java.sql.ResultSet`:代表查询返回的数据库结果集。 - `java.sql.ResultSetMetaData`:用于获取 ResultSet 对象中列的信息。
  • 优质
    学习记录笔记是一个旨在帮助学生和终身学习者高效整理和回顾知识的平台。用户可以在此创建、编辑个性化学习笔记,并通过标签分类管理内容,以便更好地记忆和理解所学材料。此外,它支持协作功能,便于小组成员共享想法和资源,促进共同进步。 这个仓库主要存放我绝大部分Markdown文章,并且也用来存储Hexo博客的文本段落件。
  • Qt 录(Qt)
    优质
    《Qt 学习记录》是一份详尽的学习笔记,内容涵盖Qt框架的基础知识、核心组件及高级应用技巧,适合编程爱好者和技术从业者参考。 ### Qt学习笔记知识点详解 #### 一、从Hello Qt开始 **知识点1:Qt程序的基本结构** - **头文件引入**: - 第一行和第二行代码中,`#include ` 和 `#include ` 是引用了两个类:`QApplication` 和 `QLabel`。其中,`QApplication` 类用于管理应用程序的主要部分,包括事件循环;而 `QLabel` 则用来显示静态文本或图像。 - 在Qt 4中,引入头文件通常采用 `` 的形式,这种格式会自动查找安装的Qt库。 - **主函数定义**: - 第三行代码 `int main(int argc, char* argv[])` 定义了程序入口点。其中参数 `argc` 和 `argv[]` 分别代表命令行参数的数量和数组,用于接收从命令行传入的数据。 - **QApplication实例化**: - 在第五行中创建了一个 `QApplication` 对象:`QApplication app(argc, argv);` ,这个对象管理整个应用程序的资源及控制流程。 - **控件创建与显示**: - 第六行代码是通过 `new QLabel(Hello Qt!);` 创建一个 `QLabel` 控件,并设置其文本为 Hello Qt!。 - 接下来的第七行,通过调用 `label->show();` 显示这个控件。 - **事件循环**: - 在第八行中使用了 `return app.exec();` 进入Qt的事件循环。这意味着程序开始监听并处理用户输入的事件,直到应用程序关闭为止。 **知识点2:编译过程** - **qmake命令**: - 通过执行 `qmake-project` 命令会自动生成一个项目文件,通常是 `hello.pro` 文件。 - 然后使用 `qmake hello.pro` 根据生成的 `.pro` 文件创建 Makefile。 - **Makefile构建**: - 在完成了上述步骤之后,可以通过运行命令如在Unix/Linux系统中执行 `make` 或者 Windows环境下使用 `nmake` 来编译和链接程序。 **扩展知识点:HTML样式支持** - **QLabel HTML支持**: - 使用HTML语法设置 `QLabel` 的显示内容是可行的。例如,以下代码会将 Hello 显示为斜体,并使 Qt! 以红色字体显示: ```cpp QLabel* label = new QLabel(

    Hello Qt!

    ); ``` #### 二、连接信号与槽 **知识点1:信号与槽机制** - **信号(signal)**:是Qt中一种特殊类型的成员函数,当特定事件发生时自动由对象发出。 - **槽(slot)**:是一个一般的成员函数的别称,可以通过被触发的信号来执行。 **知识点2:示例分析** - **QPushButton的clicked信号**: - 示例使用了 `QPushButton` 类,并且在按钮点击时会发射 `clicked()` 信号。 - **连接信号与槽**: - 在第七行和第八行中,通过以下代码将 `QPushButton` 的 `clicked` 信号绑定到 `QApplication` 的 `quit` 槽函数上。当按钮被点击后,应用程序将调用其退出方法并结束运行。 ```cpp QObject::connect(button, SIGNAL(clicked()), &app, SLOT(quit())); ``` **知识点3:编译与运行** - **编译步骤**: - 将代码保存为 `quit.cpp` 文件。 - 使用命令如 `qmake-project` 和 `qmake quit.pro` 来生成 Makefile。 - 然后利用 `make` 或者 Windows系统中的 `nmake` 命令来构建程序。 #### 三、控件的几何排列——Laying Out Widgets **知识点1:控件布局** - **控件类型**: - 包括用于输入数字的 `QSpinBox` 控件,以及用来调节数值范围的滑块型 `QSlider`。 - 此外还有作为容器来容纳其他控件的 `QWidget`。 - **父控件与子控件关系**: - 在Qt中,一个控件可以成为另一个控件的父亲或孩子。例如,`QWidget` 可以是 `QSpinBox` 和 `QSlider` 的父亲。 - 父控件负责管理其孩子的生命周期。 **知识点2:信号与槽在布局中的应用** - **示例代码**: - 示例中使用了未完全展示的代码片段来说明如何通过连接 `QSpinBox` 和 `QSlider` 控制年龄输入,并且展示了它们之间的交互是如何实现的。 - **信号与槽连接**: - 例如,可以通过将 `QSpinBox` 和
  • 优质
    本资料整理了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,
  • 优质
    Digsilent学习记录笔记是一份详尽的学习资料集,涵盖了使用Digsilent电力系统仿真软件进行电力网络规划与分析所需的知识和技巧。 在使用Digsilent进行风电并网的潮流计算时,如果通过外部文件更改风速后出现问题,应该如何解决?
  • 优质
    《Contiki学习记录笔记》是一份系统整理与归纳Contiki操作系统相关知识的学习文档,涵盖理论基础、编程实践及项目开发等内容。适合对物联网和嵌入式系统感兴趣的读者参考使用。 关于学习Contiki操作系统的心得以及对Contiki系统内核的讲解,Jeline大神分享了一些宝贵的经验。这些内容涵盖了他对Contiki系统的理解和使用心得,并深入解析了Contiki的操作系统内核特性。