elasticsearch实时检索项目总结.md
0. 项目计划
1)搭建es 集群√
2)编写程序√
- 导入数据接口开发√
- 数据检索接口开发√
- 前端页面开发√
1. 项目架构
使用ES集群作为文件存储+搜索引擎
使用java程序,spring框架,开发数据接口
使用前端html+js+css,bootstrap框架,开发前端页面
2. 环境搭建
2.1 搭建elasticsearch集群
参考:https://www.cnblogs.com/fushiyi/articles/18146093 -- 2. Elasticsearch的部署
2.2 部署Kibana
参考:https://www.cnblogs.com/fushiyi/articles/18152238
3. 编写数据接口
3.0 Maven设置
参考:https://www.cnblogs.com/fushiyi/articles/17944586
3.1 源代码
参考:https://gitee.com/fubob/personal_secondhands_houses_realtime_anaysis/tree/master/realTimeRetrieval
3.2 代码架构解析
##### model层 ###### 数据交互
## utils: 工具类
## query: 查询类
## manager: 调用查询query接口
## insert: 数据导入
##### controller层 ###### 处理用于请求,链接model层
boot: 启动类
rest: 接受请求,调用manager
SearchController:返回结果
##### view层 #####
resource/templates/info_traget_search/thml:前端界面
staic.plugins: 前端插件
3.3 代码调试及问题
3.3.1 构造方法与class不重名
最后解决:重新命名
3.3.2 依赖冲突
解决参考:https://i.cnblogs.com/articles/edit-done;postId=17944586;isPublished=false --依赖搜索
最后解决:重新设置版本
<properties>
<hbase.version>2.1.1</hbase.version>
<zookeeper.version>3.4.8</zookeeper.version>
<hadoop.version>3.1.1</hadoop.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
3.3.3 找不到worker02
最后解决:设置windows host文件
## C:\Windows\System32\drivers\etc\hosts
---加入
192.168.0.104 master
192.168.0.105 worker01
192.168.0.106 worker02
---
4. 项目运行
4.1 启动后台
4.2 页面搜索
## 地址:http://localhost:8084/hw_bigdata/search_target
5. Java知识补充⭐
参考:https://www.cnblogs.com/fushiyi/articles/18153098
6. elasticsearch集群应用⭐
6.1 向量数据库⭐
6.1.1 什么是向量
## 简单理解,可以理解为一个力,或者一个坐标,可能是二维,也能是三维,多维,可以以数组的形式进行存储,例如[1,2],[1,-1,23,-12]
6.1.2 elasticsearch存储向量
// 以json形式进行存储,存储在dense_vector字段
PUT /my_vector_index
{
"mappings": {
"properties": {
"text_description": {
"type": "text"
},
"my_vector": {
"type": "dense_vector",
"dims": 128 // 假设你的向量是128维的
}
}
}
}
---
POST /my_vector_index/_doc/1
{
"text_description": "这是一段关于机器学习的文本描述",
"my_vector": [0.1, 0.2, -0.3, 0.4, ..., 0.5] // 这是一个128维的向量示例
}