Elasticsearch初识 简单学习记录以免后续有用到的时候再忘记了。因版本需要锁定7.1.1版本对于 Elasticsearch 7.1.1推荐使用以下 Spring Boot 版本组合‌Spring Boot 2.1.x‌ 或 ‌2.2.x‌ 版本对应的 Spring Data Elasticsearch 版本为 3.2.x一、elasticsearch:下载地址https://www.elastic.co/guide/en/elasticsearch/reference/7.6/getting-started-install.html二、解压后进入bin目录下双击elasticsearch.bat启动验证浏览器访问http://localhost:9200 如果有数据返回说明启动成功三、修改配置进入 config 目录找到 elasticsearch.yml 文件用记事本或其他文本编辑器打开。# 集群名称cluster.name: elasticsearch# 节点名称node.name: node-1# 数据存储路径path.data: G:\pubTools\devtools\elasticsearch-7.6.2-windows-x86_64\elasticsearch-7.6.2\data# 日志存储路径path.logs: G:\pubTools\devtools\elasticsearch-7.6.2-windows-x86_64\elasticsearch-7.6.2\logs# 网络设置network.host: localhosthttp.port: 9200# 发现设置单节点模式discovery.type: single-node# 安全配置启用认证但使用HTTP访问xpack.security.enabled: truexpack.security.enrollment.enabled: falsexpack.security.http.ssl.enabled: falsexpack.security.transport.ssl.enabled: false四、设置用户密码在bin目录下elasticsearch-setup-passwords interactive按照提示为以下用户设置密码elastic超级用户 - 最重要apm_systemkibana_systemlogstash_systembeats_systemremote_monitoring_user为了简化可以为所有用户设置相同的密码 123456仅用于开发环境。五、验证访问http://localhost:9200会出现登录框输入用户名elastic密码刚才设置的密码123456成功访问后{name : node-1,cluster_name : elasticsearch,cluster_uuid : LEWEgqdAQnGifiY7KCzBJQ,version : {number : 7.6.2,build_flavor : default,build_type : zip,build_hash : ef48eb35cf30adf4db14086e8aabd07ef6fb113f,build_date : 2020-03-26T06:34:37.794943Z,build_snapshot : false,lucene_version : 8.4.0,minimum_wire_compatibility_version : 6.8.0,minimum_index_compatibility_version : 6.0.0-beta1},tagline : You Know, for Search}六、重置elastic用户密码如果忘记了可以重置elasticsearch-reset-password -u elastic七、创建新用户elasticsearch-users useradd myuser -p mypassword -r superuser1.elasticsearch-usersElasticsearch 提供的用户管理命令行工具2.useradd子命令表示要添加一个新用户3.myuser要创建的新用户名4.-p mypassword设置该用户的密码为 “mypassword”5.-r superuser为该用户分配superuser超级用户角色八、设置为windows服务elasticsearch-service.bat start九、下载Kibana访问https://www.elastic.co/downloads/kibana选择与Elasticsearch相同版本的Windows ZIP包。十、解压和配置解压到目录进入config编辑kibana.yml文件# Kibana 服务运行的端口号默认是5601server.port: 5601# Kibana 服务绑定的主机地址localhost表示只允许本地访问server.host: localhost# Elasticsearch 服务器的地址列表elasticsearch.hosts: [http://localhost:9200]# kibana_system用户elasticsearch.username: kibana_system# 在4.2小节设置的kibana_system用户密码elasticsearch.password: 123456# 禁用timelion插件vis_type_timelion.enabled: false十一、启动在bin目录下kibana.bat在浏览器中http://localhost:5601使用elastic用户和密码登录十二、常见问题问题1端口被占用错误信息Port 9200 is already in use解决方案检查是否有其他Elasticsearch实例在运行修改配置文件中的端口号http.port: 9201使用命令查看端口占用netstat -ano | findstr 9200问题2内存不足错误信息OutOfMemoryError解决方案修改 config/jvm.options 文件中的内存设置-Xms2g-Xmx2g问题3无法访问Elasticsearch可能原因防火墙阻止了9200端口network.host配置问题解决方案检查Windows防火墙设置确认配置文件中的network.host设置network.host: localhost # 仅本地访问# 或network.host: 0.0.0.0 # 允许远程访问需要配合防火墙问题4忘记用户密码解决方案cd C:\elasticsearch\elasticsearch-9.1.5\binelasticsearch-reset-password -u elastic问题5Kibana无法连接Elasticsearch解决方案确认Elasticsearch正在运行检查kibana.yml中的elasticsearch.hosts配置如果启用了认证确认kibana_system用户密码正确字段类型详解| 字段类型 | 用途 | 是否分词 | 示例 || --- | --- | --- | --- || text | 用于全文搜索会经过分词器处理 | ✅ | 这是一段中文文本 || keyword | 用于精确匹配、聚合、排序不进行分词 | ❌ | status:active || date | 存储日期时间 | - | 2024-06-01T10:00:00Z || long, integer, short, byte | 整数类型 | - | 100, -5 || double, float | 浮点数类型 | - | 3.14 || boolean | 布尔值 | - | true, false || ip | IP 地址 | - | 192.168.1.1 || geo_point | 地理坐标 | - | {lat: 39.9, lon: 116.4} || object | 嵌套 JSON 对象 | - | {name: 张三, age: 30} || nested | 独立索引的嵌套对象支持数组中的对象列表 | - | 数组中的对象列表 |1. text 与 keyword 的选择‌text‌ 类型适用于需要进行全文检索的字段例如商品描述、文章内容等。它会经过分词器处理生成多个词根并存储在倒排索引中。‌keyword‌ 类型适用于需要精确匹配、排序或聚合的字段例如状态标签、分类编码等。它不会被分词整个字段作为一个整体进行索引。2. 数值类型的选择‌整数类型‌如 long, integer, short, byte适合存储离散数值如数量、年龄等。应根据数据范围选择合适的数据类型以节省存储空间‌14官网。‌浮点类型‌如 double, float适合存储连续数值如价格、评分等。对于需要高精度的场景可以使用 scaled_float 类型通过缩放因子将浮点数转换为整数存储‌14官网。3. 特殊类型‌date‌ 类型用于存储日期时间信息支持多种格式如 yyyy-MM-dd HH:mm:ss 等。‌geo_point‌ 类型用于存储地理坐标支持距离查询、边界框查询等地理空间操作。三、Mapping 设计最佳实践‌显式定义字段类型‌避免依赖动态映射提前定义字段类型以防止类型误判。‌合理选择分词器‌对于中文文本推荐使用 ik_max_word 或 ik_smart 分词器。‌使用多字段Multi-fields‌一个字段可以同时具有多种类型例如 text 类型用于全文搜索keyword 类型用于排序和聚合。‌避免动态新增字段‌在生产环境中建议设置 dynamic: strict 以防止脏数据污染索引结构。‌禁用不必要的字段索引‌对于不需要参与搜索或聚合的字段可以通过设置 index: false 来减少存储开销。‌合理配置字段压缩策略‌使用 scaled_float 等类型优化数值字段的存储和聚合性能。示例name 字段使用 text 类型支持全文搜索。sku 字段使用 keyword 类型用于精确匹配。price 字段使用 float 类型存储价格信息。available 字段使用 boolean 类型表示商品是否上架。release_date 字段使用 date 类型存储商品上市日期。

相关新闻

最新新闻

C++ 23新特性解析:实用主义进化与工程实践指南

C++ 23新特性解析:实用主义进化与工程实践指南

1. C 23:一次聚焦“实用主义”的进化如果你和我一样,常年泡在C的代码堆里,对这门语言的每一次标准更新都保持着一种既期待又审慎的态度。期待的是新工具能让我们写出更安全、更高效、更优雅的代码;审慎的是,我们得掂量…

2026/7/24 6:07:20
C++入门:从Hello World理解编译器、链接器与开发环境搭建

C++入门:从Hello World理解编译器、链接器与开发环境搭建

1. 从“Hello World”开始&#xff1a;为什么它远不止一行代码 如果你刚打开电脑&#xff0c;准备踏入C的世界&#xff0c;大概率会从搜索引擎或教程里看到这样一行代码&#xff1a; cout << “Hello World” << endl; 。然后&#xff0c;教程会告诉你&#xff…

2026/7/24 6:07:20
自回归与Seq2Seq模型:核心差异与应用场景解析

自回归与Seq2Seq模型:核心差异与应用场景解析

1. 自回归模型与序列到序列模型的核心差异1.1 模型架构的本质区别自回归模型&#xff08;如GPT系列&#xff09;采用单向注意力机制&#xff0c;每个时间步只能看到当前及之前的token。这种结构决定了它天然适合文本生成任务——就像人类写作时逐字思考的过程。我在实际使用GPT…

2026/7/24 6:07:20
语音交互LLM:技术原理、架构设计与Python实践指南

语音交互LLM:技术原理、架构设计与Python实践指南

如果你还在用键盘敲字与大语言模型对话&#xff0c;可能已经落后了。最近半年&#xff0c;语音交互正在成为LLM最自然的输入方式——这不是简单的"语音转文字"&#xff0c;而是真正改变人机交互效率的关键突破。为什么语音交互突然变得如此重要&#xff1f;想象一下&…

2026/7/24 6:07:20
ANSYS FLUENT UDF实战:自定义波浪边界与衰减模型开发指南

ANSYS FLUENT UDF实战:自定义波浪边界与衰减模型开发指南

1. 项目概述&#xff1a;当计算流体力学遇上自定义边界在船舶与海洋工程、海岸防护以及近海结构物设计领域&#xff0c;波浪与结构的相互作用是核心的物理问题。我们通常使用ANSYS FLUENT这类计算流体动力学软件进行数值模拟&#xff0c;但软件自带的波浪模型&#xff0c;比如V…

2026/7/24 6:07:20
BQ41Z50电池管理芯片:智能充电算法与工程配置实战

BQ41Z50电池管理芯片:智能充电算法与工程配置实战

1. 项目概述&#xff1a;为什么我们需要一个“聪明”的充电管家&#xff1f;在电池供电设备的设计中&#xff0c;最让工程师头疼的问题之一&#xff0c;往往不是如何让电池充得更快&#xff0c;而是如何让它充得更“聪明”、更安全、更长寿。我见过太多项目&#xff0c;初期只关…

2026/7/24 6:02:20

月新闻