ES Elasticsearch 从 (eselastic search)

admin 2025-02-07 44 0

本文目录导航:

Elasticsearch:从 ES|QL 到 PHP 对象

从 Elasticsearch 8.13.0 版本开始,elasticsearch-php 客户端提供了 ES|QL 查询功能,允许你将结果映射到 PHP 对象,包括自定义类。

ES|QL 是一种强大的数据过滤、转换和分析语言,利用管道(|)逐步操作和转换数据。

此功能在技术预览版中可用,提供了组合一系列操作的能力,其中操作输出成为下一个操作的输入,实现复杂数据转换和分析。

使用案例中,展示了如何使用 ES|QL 查询来检索存储在 Elasticsearch 中的数据。

例如,查询可以返回 sample_data 索引中的前 3 个文档。

为了说明功能,一个包含 81,828 本书的 CSV 文件被导入 Elasticsearch,其中包含书籍信息。

通过 Elasticsearch 映射创建了名为 books 的索引,并使用 PHP 脚本批量导入数据。

该过程在 PHP 8.2.17 下执行,耗时 7 秒,使用 28 MB RAM,索引大小约为 62 MB。

在 PHP 中执行 ES|QL 查询后,结果以 JSON 表结构形式呈现。

其中,columns 字段包含 name 和 type 定义,values 字段以 JSON 格式表示表数据。

例如,查询可以检索按用户排名评论排序的 Stephen King 撰写的前 10 本书。

结果包含与一本书相关的 6 个属性(作者、描述、出版商、评级、标题、年份)和 10 个结果,所有书籍均由 Stephen King 撰写。

结果对象可以作为数组、字符串或对象访问。

通过对象接口,可以使用属性和索引来访问值。

例如,可以使用 $result->values[0][4] 访问列表中第一本书(0)的标题(4),$result->values[1][3] 访问列表中第一本书(0)的排名分数(3)等。

PHP 中数组索引从零开始。

为了将结果映射到对象数组,可以使用 elasticsearch-php 的 mapTo() 功能。

此功能允许将 ES|QL 结果的列返回的属性映射到对象数组中。

如果你有自定义的 Book 类,可以使用它来映射结果。

即使类中包含 ES|QL 结果中未包含的属性,mapTo() 函数也将仅使用列返回的属性。

欲深入了解并应用此功能,可以下载报告的所有示例。

此功能适用于将 RAG 构建到应用程序中或尝试使用不同 LLMs 的向量数据库。

访问 Github 查看 LangChain、Cohere 等示例笔记本,并参加即将开始的 Elasticsearch 工程师培训。

ES Elasticsearch 从 (eselastic search)

如何查看elasticsearch版本

查看elasticsearch版本的方法:

1、elasticsearch已经启动的情况下

使用curl-XGETlocalhost:9200命令查看:

number:1.7.2,

build_hash:eb1385b8125d647f593f7202acbd816e8ec,

build_timestamp:2015-09-14T09:49:53Z,

build_snapshot:false,

lucene_version:4.10.4

在输出的json中有版本信息version中的number-1.7.2即为其版本号。

2、在elasticsearch没有启动的情况下

通过在es的安装目录下的lib目录中查看jar包来确定版本号:

lslib/|grep-Pelasticsearch-\d\.\d\.\d\

输出。

通过jar包可知es版本号为1.7.2

扩展资料

ElasticSearch是一个基于Lucene的搜索服务器。

它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。

Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。

ElasticSearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

官方客户端在Java、(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。

根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene。

Elasticsearch是与名为Logstash的数据收集和日志解析引擎以及名为Kibana的分析和可视化平台一起开发的。

这三个产品被设计成一个集成解决方案,称为“Elastic Stack”(以前称为“ELK stack”)。

Elasticsearch可以用于搜索各种文档。

它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。

”Elasticsearch是分布式的,这意味着索引可以被分成分片,每个分片可以有0个或多个副本。

每个节点托管一个或多个分片,并充当协调器将操作委托给正确的分片。

再平衡和路由是自动完成的。

“相关数据通常存储在同一个索引中,该索引由一个或多个主分片和零个或多个复制分片组成。

一旦创建了索引,就不能更改主分片的数量。

Elasticsearch使用Lucene,并试图通过JSON和Java API提供其所有特性。

它支持facetting和percolating,如果新文档与注册查询匹配,这对于通知非常有用。

另一个特性称为“网关”,处理索引的长期持久性;例如,在服务器崩溃的情况下,可以从网关恢复索引。

Elasticsearch支持实时GET请求,适合作为NoSQL数据存储,但缺少分布式事务。

PHP工作5来的ES都没完过,PHP从0到熟练,手把手带你玩转ES的骚操作

准备ES:了解并查看Elasticsearch的PHP API文档。

安装操作Elasticsearch的PHP库:在搜索Elasticsearch并下载对应版本的库。

PHP连接Elasticsearch:参照官方配置文档进行。

创建索引和映射:创建名为users的索引并制定映射中的字段类型。

添加文档:使用关联数组传递JSON文档至Elasticsearch。

单一文档索引:提供ID或让Elasticsearch自动生成ID索引文档。

批量(bulk)索引:使用bulk API批量索引文档。

获取文档:通过index/type/id方式实时获取文档。

更新文档:部分更新时合并指定的doc参数,或执行脚本更新。

删除文档:指定路径删除指定的文档。

评论(0)