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 代码架构解析

image-20240423114336551

#####  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不重名

image-20240419103330952

最后解决:重新命名

3.3.2 依赖冲突

image-20240419095256231

解决参考: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

image-20240419102542386

最后解决:设置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 启动后台

image-20240422092101926

4.2 页面搜索

## 地址:http://localhost:8084/hw_bigdata/search_target

image-20240422092154434

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维的向量示例  
}
posted @ 2024-04-19 15:50  付十一。  阅读(17)  评论(0)    收藏  举报