828华为云征文 | 解锁数据价值,使用华为云Flexusx与Solr构建智能搜索应用

前言

在数字化转型的浪潮中,数据已成为企业最宝贵的资产之一。如何高效、准确地解锁这些数据价值,成为众多企业面临的挑战。华为云Flexusx服务器以其卓越的性能、灵活的资源调度能力和强大的可扩展性,为企业提供了一个理想的平台。结合Apache Solr这一强大的开源搜索平台,企业能够在Flexusx上快速构建起智能搜索应用,实现对海量数据的即时索引与智能检索。Flexusx与Solr的融合,不仅提升了搜索效率与准确性,还降低了运维成本,为企业数据价值的深度挖掘与利用开辟了新路径在828华为云企业上云节之际,让我们一同探索这一创新解决方案,开启智能搜索的新篇章。

链接直达华为云Flexus云服务器X实例

在这里插入图片描述

Solr介绍

Apache Solr 是一款基于Apache Lucene的搜索服务器,Apache Lucene 是一个基于 Java 的开源信息检索库。Solr 旨在驱动强大的文档检索或分析应用程序,这些应用程序涉及非结构化数据、半结构化数据或非结构化和结构化数据的混合。它还为有限的关系、图形、统计、数据分析或存储相关用例提供辅助支持。

官方网站:https://solr.apache.org/

官方文档:https://solr.apache.org/guide/solr/latest/index.html

在这里插入图片描述

部署流程

拉取镜像

[root@flexusx-251f ~]# docker pull solr:8.0.0
8.0.0: Pulling from library/solr
67e8aa6c8bbc: Pull complete
627e6c1e1055: Pull complete
0670968926f6: Pull complete
65e458027cc2: Pull complete
6e07b100903d: Pull complete
bbf92622a61b: Pull complete
4a986d565709: Pull complete
09c2bad786ea: Pull complete
41f6bba18f53: Pull complete
05670d30e8db: Pull complete
d94c25f7ce44: Pull complete
Digest: sha256:456f074bc4bd4c78b6e9322c372664b2db389caeaad3f50db864a27c70064354
Status: Downloaded newer image for solr:8.0.0
docker.io/library/solr:8.0.0

创建主机挂载目录运行 solr

[root@flexusx-251f ~]# mkdir /solrdata

编写 docker-compose.yaml文件

[root@flexusx-251f solrdata]# vim docker-compose.yaml
[root@flexusx-251f solrdata]# cat docker-compose.yaml
version: '3'
services:
  solr:
    image: solr:8.0.0
    container_name: my_solr
    ports:
     - "8983:8983"
    volumes:
      - data:/var/solr
    command:
      - solr-precreate
      - gettingstarted
volumes:
  data:

运行容器并查看

[root@flexusx-251f solrdata]# docker-compose up -d
[+] Running 2/2
 ✔ Container solrdata-solr-1  Recreated                                    0.5s
 ✔ Container my_solr          Started                                      0.1s
 
[root@flexusx-251f solrdata]# docker-compose ps
NAME      IMAGE        COMMAND                  SERVICE   CREATED         STATUS         PORTS
my_solr   solr:8.0.0   "docker-entrypoint.s…"   solr      8 seconds ago   Up 7 seconds   0.0.0.0:8983->8983/tcp, :::8983->8983/tcp

配置安全组,放行端口 8983

在这里插入图片描述

在 Web 浏览器查看http://localhost:8983/

在这里插入图片描述

在 UI 中,单击“核心管理”,现在应该会看到“gettingstarted”核心。

在这里插入图片描述

快速上手

创建核心

当 Solr 以独立模式运行时,可以创建“核心”来存储数据

手动创建核心(也可以在webUI界面进行手动创建)

[root@flexusx-251f solrdata]# docker exec -it my_solr solr create_core -c gettingstarted001

UI管理界面可以进行查看

在这里插入图片描述

创建集合

在“SolrCloud”集群中,可以创建“集合”来存储数据

  • 创建集合的第一种方法是转到Solr 管理 UI,从左侧导航菜单中选择“集合”,然后按“添加集合”按钮,为其命名,选择配置集_default,然后按“添加集合”按钮。
  • 第二种方式是通过其中一个容器上的 Solr 控制脚本
[root@flexusx-251f solrdata]# docker exec my_solr solr create -c gettingstarted2
WARNING: Using _default configset with data driven schema functionality. NOT RECOMMENDED for production use.
         To turn off: bin/solr config -c gettingstarted2 -p 8983 -action set-user-property -property update.autoCreateFields -value false
INFO  - 2024-09-22 13:31:36.789; org.apache.solr.util.configuration.SSLCredentialProviderFactory; Processing SSL Credential Provider chain: env;sysprop

Created new core 'gettingstarted2'

在这里插入图片描述

定义架构Define a schema

定义文档包含的一些字段

curl --request POST \
  --url http://localhost:8983/api/collections/techproducts/schema \
  --header 'Content-Type: application/json' \
  --data '{
  "add-field": [
    {"name": "name", "type": "text_general", "multiValued": false},
    {"name": "cat", "type": "string", "multiValued": true},
    {"name": "manu", "type": "string"},
    {"name": "features", "type": "text_general", "multiValued": true},
    {"name": "weight", "type": "pfloat"},
    {"name": "price", "type": "pfloat"},
    {"name": "popularity", "type": "pint"},
    {"name": "inStock", "type": "boolean", "stored": true},
    {"name": "store", "type": "location"}
  ]
}'

索引一些文档

单个文档可以被索引

curl --request POST \
  --url 'http://localhost:8983/api/collections/techproducts/update' \
  --header 'Content-Type: application/json' \
  --data '  {
    "id" : "978-0641723445",
    "cat" : ["book","hardcover"],
    "name" : "The Lightning Thief",
    "author" : "Rick Riordan",
    "series_t" : "Percy Jackson and the Olympians",
    "sequence_i" : 1,
    "genre_s" : "fantasy",
    "inStock" : true,
    "price" : 12.50,
    "pages_i" : 384
  }'

可以在同一个请求中对多个文档进行索引

 curl --request POST \
  --url 'http://localhost:8983/api/collections/techproducts/update' \
  --header 'Content-Type: application/json' \
  --data '  [
  {
    "id" : "978-0641723445",
    "cat" : ["book","hardcover"],
    "name" : "The Lightning Thief",
    "author" : "Rick Riordan",
    "series_t" : "Percy Jackson and the Olympians",
    "sequence_i" : 1,
    "genre_s" : "fantasy",
    "inStock" : true,
    "price" : 12.50,
    "pages_i" : 384
  }
,
  {
    "id" : "978-1423103349",
    "cat" : ["book","paperback"],
    "name" : "The Sea of Monsters",
    "author" : "Rick Riordan",
    "series_t" : "Percy Jackson and the Olympians",
    "sequence_i" : 2,
    "genre_s" : "fantasy",
    "inStock" : true,
    "price" : 6.49,
    "pages_i" : 304
  }
]'

包含文档的文件可以按如下方式进行索引

curl -H "Content-Type: application/json" \
       -X POST \
       -d @example/exampledocs/books.json \
       --url 'http://localhost:8983/api/collections/techproducts/update?commit=true'

提交更改

文档被索引到集合后,它们不会立即可供搜索。为了使它们可搜索,refresh需要执行提交操作(在其他搜索引擎中也称为 OpenSearch 等)。可以使用自动提交定期安排提交,如下所示。

curl -X POST -H 'Content-type: application/json' -d '{"set-property":{"updateHandler.autoCommit.maxTime":15000}}' http://localhost:8983/api/collections/techproducts/config

体验和感受

828华为云企业上云节的契机下,我有幸见证了Flexusx服务器与Solr搜索引擎的强强联合,共同解锁了数据价值的无限可能。Flexusx以其卓越的计算能力和灵活的资源配置,为Solr提供了强大的后端支持,使得搜索响应速度显著提升,数据处理能力更是跃升至新高度。这种部署模式不仅优化了搜索结果的准确性和相关性,还实现了对海量数据的快速索引与高效检索。体验过程中,我深刻感受到了智能搜索应用带来的便捷与高效,仿佛为数据海洋装上了导航灯,让信息的获取变得触手可及。这无疑是对华为云技术创新能力和服务品质的又一次有力证明。

产品链接华为云Flexus云服务器X实例_直播_建站服务器-华为云

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/882888.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

力扣【118-杨辉三角】【数组-C语言】

题目:力扣-118 杨辉三角:(算法思路) 1. 每行第一个数和最后一个数都是1 2. 把杨辉三角左端对齐,从第三行开始,非首尾的元素值等于上一行同列的元素与该元素之前的元素之和,即 t [ j ] r e t …

人工智能在医疗健康领域的应用与展望

随着技术的发展,人工智能(Artificial Intelligence, AI)正逐渐渗透到各行各业之中,其中医疗健康领域因其对人类福祉的重要性而备受关注。AI技术的应用不仅能够提高医疗服务的质量和效率,还能促进医学研究的进步&#x…

PingCastle:一款针对活动目录AD的安全强化工具

关于PingCastle PingCastle是一款针对活动目录AD的安全强化工具,可以帮助广大研究人员提升活动目录的安全性,该工具甚至可以做到在 20% 的时间内实现 80% 的AD安全性。 Ping Castle 是一种旨在使用基于风险评估和成熟度框架的方法快速评估活动目录AD 安…

Spring Security学习

系列文章目录 第一章 基础知识、数据类型学习 第二章 万年历项目 第三章 代码逻辑训练习题 第四章 方法、数组学习 第五章 图书管理系统项目 第六章 面向对象编程:封装、继承、多态学习 第七章 封装继承多态习题 第八章 常用类、包装类、异常处理机制学习 第九章 集…

SkyWalking 环境搭建部署

架构简介 skywalking agent : 和业务系统绑定在一起,负责收集各种监控数据skywalking oapservice : 是负责处理监控数据的,比如接受skywalking agent的监控数据,并存储在数据库中;接受skywalking webapp的前端请求,从数据库查询数据,并返回数据给前端。Skywalking oapserv…

前端开发之装饰器模式

介绍 装饰器模式 是在不修改对象内部结构的情况下,动态地给对象添加功能的一种设计模式。在软件开发中,有时候我们需要为已有对象添加一些额外的行为,但不希望修改该对象的代码,装饰器模式可以很好的满足这一需求。 在TypeScrip…

C++3D迷宫

目录 开头程序程序的流程图程序游玩的效果下一篇博客要说的东西 开头 大家好&#xff0c;我叫这是我58。 程序 #include <iostream> using namespace std; void printmaze(char strmaze[5][5][5]) {cout << "-----" << endl;int i 0;int ia 0…

Qt优秀开源项目之二十三:QSimpleUpdater

QSimpleUpdater是开源的自动升级模块&#xff0c;用于检测、下载和安装更新。 github地址&#xff1a;https://github.com/alex-spataru/QSimpleUpdater QSimpleUpdater目前Star不多&#xff08;911个&#xff09;&#xff0c;但已在很多开源项目看到其身影&#xff0c;比如Not…

Chunk-based Chinese Spelling Check with Global Optimization(EMNLP2020)

Chunk-based Chinese Spelling Check with Global Optimization(EMNLP2020) 一.概述 作者认为&#xff0c;一方面&#xff0c;以往的工作大多只考虑对汉字读音或字形相近的错字进行校正&#xff0c;而没有对视觉上和语音上不相关的错字进行校正&#xff1b;另一方面&#xff0…

使用 Nuxt Kit 的构建器 API 来扩展配置

title: 使用 Nuxt Kit 的构建器 API 来扩展配置 date: 2024/9/24 updated: 2024/9/24 author: cmdragon excerpt: 摘要:本文详细介绍了如何使用 Nuxt Kit 的构建器 API 来扩展和定制 Nuxt 3 项目的 webpack 和 Vite 构建配置,包括扩展Webpack和Vite配置、添加自定义插件、…

nginx如何拦截未经授权的跳转

nginx如何拦截未经授权的跳转 背景准备好一个网站准备好引用网站配置nginx拦截效果 背景 在现实工作中往往有一些企业或人未取得授权但是转载或挂载我们的网址。那么有些要求严格或者有其他原因的情况下不希望这些链接正常访问。所以就有了这样的需求。前提是咱们的网站什么的是…

如何把python(.py或.ipynb)文件打包成可运行的.exe文件?

将 Python 程序打包成可执行的 .exe 文件&#xff0c;通常使用工具如 PyInstaller。这是一个常用的 Python 打包工具&#xff0c;可以将 Python 程序打包成独立的可执行文件&#xff0c;即使没有安装 Python 也能运行。 步骤&#xff1a; 1. 安装 PyInstaller 使用 conda 安…

速通LLaMA3:《The Llama 3 Herd of Models》全文解读

文章目录 概览论文开篇IntroductionGeneral OverviewPre-TrainingPre-Training DataModel ArchitectureInfrastructure, Scaling, and EfficiencyTraining Recipe Post-TrainingResultsVision ExperimentsSpeech Experiments⭐Related WorkConclusionLlama 3 模型中的数学原理1…

docker搭建个人网盘,支持多种格式,还能画图,一键部署

1&#xff09;效果 2&#xff09;步骤 2.1&#xff09;docker安装 docker脚本 bash <(curl -sSL https://cdn.jsdelivr.net/gh/SuperManito/LinuxMirrorsmain/DockerInstallation.sh)docker-compose脚本 curl -L "https://github.com/docker/compose/releases/late…

【计网】从零开始掌握序列化 --- 实现网络计算器项目

​​​请各位保持头脑清醒&#xff0c; ​​​读些好书&#xff0c;做点有用的事&#xff0c; ​​​快快乐乐地生活。 ​​​ --- 斯蒂芬金 《肖申克的救赎》--- 从零开始掌握序列化 1 知识回顾2 服务器框架3 客户端框架4 运行测试 1 知识回顾 前面两篇文章学习中基础知识…

蓝队技能-应急响应篇Web内存马查杀JVM分析Class提取诊断反编译日志定性

知识点&#xff1a; 1、应急响应-Web内存马-定性&排查 2、应急响应-Web内存马-分析&日志 注&#xff1a;传统WEB类型的内存马只要网站重启后就清除了。 演示案例-蓝队技能-JAVA Web内存马-JVM分析&日志URL&内存查杀 0、环境搭建 参考地址&#xff1a;http…

常见统计量与其抽样分布

什么是统计量 我们首先给出统计量的定义:设 X 1 , X 2 , ⋯ , X n X_1,X_2,\cdots,X_n X1​,X2​,⋯,Xn​ 为来自于总体X的一个样本&#xff0c; g ( X 1 , X 2 , ⋯ , X n ) g(X_1,X_2,\cdots,X_n) g(X1​,X2​,⋯,Xn​) 为关于 X 1 , X 2 , ⋯ , X n X_1,X_2,\cdots,X_n X…

Python | Leetcode Python题解之第434题字符串中的单词数

题目&#xff1a; 题解&#xff1a; class Solution:def countSegments(self, s):segment_count 0for i in range(len(s)):if (i 0 or s[i - 1] ) and s[i] ! :segment_count 1return segment_count

【JS】严格模式/非严格模式的区别

JS的严格模式和非严格模式 js运行有两种模式&#xff1a;一种是普通模式&#xff1b;一种是严格模式。 严格模式是ES5添加的&#xff0c;是比普通模式多一部分的js规则。如果在ES5之前js解析引擎&#xff0c;会忽略严格模式。 js一般默认是普通模式&#xff0c;ES6的模块和Cla…

数据结构 ——— 数组 nums 包含了从 0 到 n 的所有整数,但是其中缺失了一个,请编写代码找出缺失的整数,并且在O(N)时间内完成

目录 题目要求 代码实现 方法1&#xff08;异或法&#xff09;&#xff1a; 异或算法的时间复杂度&#xff1a; 方法2&#xff08;等差数列公式&#xff09;&#xff1a; 等差数列公式的时间复杂度&#xff1a; 题目要求 整型数组 nums 包含了从 0 到 n 的所有整数&…