一、elasticsearch端口号
elasticsearch会默认监听9200端口,这个端口是专门用于http协议的,也就是所有api请求都会通过这个端口进行。
如果需要更改监听的端口号,可以在elasticsearch.yml中进行配置,如下所示:
network.bind_host: 0.0.0.0 network.host: 0.0.0.0 http.port: 9300
上述配置可以将http协议的监听端口修改为9300,同时也将es绑定到了所有可用的ip地址上,以便于其他节点能够正常访问。
二、elasticsearch排序
在es中,如果要将查询结果进行排序,可以指定sort参数,进行升序或降序排列。如下所示:
GET /_search { "query": { "match_all": {} }, "sort": [ {"price": {"order": "desc"}}, "_score" ] }
上述代码中,第一个sort参数表示按照price降序排列,第二个sort参数表示按照_score升序排列。
三、elasticsearch端口配置
在es的配置文件中,除了可以配置监听的端口,还可以对集群中的节点进行一些参数设置。
比如,在elasticsearch.yml中增加以下配置,可以设置一个节点的名字:
node.name: "node-1"
还有一个比较重要的参数是cluster.name,用于设置集群的名字。只有在同一个集群内的节点才能相互协作,因此这个参数的重要性不言而喻。
四、elasticsearch查询
在es中,有很多种不同的查询方式,如match、term、bool等。match查询是一个基本的全文检索方法,可以根据关键字匹配文档中的内容。如下所示:
GET /_search { "query": { "match": {"title": "elasticsearch"} } }
上述代码表示查询title字段中包含elasticsearch关键字的文档。还有一个更加精确的查询是term查询,它可以匹配指定字段中的精确值。
五、elasticsearch架构
es采用的是分布式架构,一个集群可以包含多个节点,每个节点可以存储一部分的数据和索引信息。当进行查询时,会根据查询的条件将请求发送到对应的节点上,然后将结果合并返回。
在es内部,有一个master节点,用于协调集群的操作。当新的索引被创建时,会由master节点负责将这个操作同步到其他节点上。
六、elasticsearch入门
如果想要学习elasticsearch,可以先从官方文档开始。官方文档详细介绍了es的基础知识、架构以及各种api的使用方法。此外,还可以通过搭建本地es集群来加深对其的理解。
下面是一个简单的示例,演示如何创建一个新的索引:
PUT /my-index { "settings": { "number_of_shards": 1, "number_of_replicas": 0 }, "mappings": { "properties": { "title": {"type": "text"}, "description": {"type": "text"}, "price": {"type": "float"} } } }
七、elasticsearch官网
elasticsearch官网(https://www.elastic.co/)提供了各种产品和服务的介绍,还有社区、培训和支持等资源。
在官网上,可以找到es的最新版本、相关插件和解决方案。此外,还有很多有用的文档和博客,可以帮助开发者更好地了解es的各种功能和用法。
八、elasticsearch备份
在实际应用中,数据备份是非常重要的。es提供了snapshot和restore的功能,可以将数据和索引备份到任意的远程文件系统中。
以下是一个简单的备份示例:
PUT _snapshot/my_backup { "type": "fs", "settings": { "location": "/mnt/backups/my_backup" } }
上述代码中,将备份数据存储到/mnt/backups/my_backup目录中。
九、elasticsearch部署
当需要在集群中部署新的节点时,可以使用elasticsearch安装包进行部署。安装包可以从官网上下载得到,也可以使用源码编译得到。
在安装过程中,需要设置一些环境变量和配置文件,以便于es能够正常运行。详细的安装指南可以在官网文档中找到。
十、elasticsearch特性
es具有很多强大的特性,如:
1、分布式架构:可以通过水平扩展来提高性能和容量。
2、全文检索:支持match、term等多种查询方式,可以快速准确地匹配文档。
3、近实时搜索:es会定期刷新数据,保证查询结果的及时性。
4、可扩展性:支持各种插件和第三方扩展,可以根据需求进行扩展。
5、大数据量处理:可以轻松处理海量的数据和文档。