当前位置: 首页 > wzjs >正文

韩国的 电子商务网站郑州百度推广公司电话

韩国的 电子商务网站,郑州百度推广公司电话,crm系统有哪些,郑州企业建设网站服务1.介绍 RediSearch 是 Redis 的官方全文搜索引擎模块,由 Redis Labs 开发,支持在内存中实现毫秒级响应的实时搜索。 ‌ 核心功能 ‌全文搜索‌:支持关键词、模糊匹配(如前缀搜索)、布尔逻辑(AND/OR/NOT&a…

1.介绍

RediSearch 是 Redis 的官方全文搜索引擎模块,由 Redis Labs 开发,支持在内存中实现毫秒级响应的实时搜索。 ‌
核心功能

  • 全文搜索‌:支持关键词、模糊匹配(如前缀搜索)、布尔逻辑(AND/OR/NOT)及中文分词(需配置分词器)。
  • 复杂查询‌:数值范围查询(如价格区间)、地理位置搜索(结合Redis GEO命令)、JSON文档搜索(需配合RedisJSON模块)。 ‌
  • 智能扩展‌:自动补全(如输入“电”联想“电脑”)、同义词扩展(如“手机”匹配“移动电话”)。
  • 高性能‌:内存存储,写入即索引,支持增量索引(无需全量重建)。 ‌ ‌

2.官方使用文档

官方使用文档

3.依赖

<dependency><groupId>com.redis</groupId><artifactId>lettucemod-spring</artifactId><version>4.3.0</version>
</dependency>

4.项目代码

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;import java.util.List;@Data
@NoArgsConstructor
@AllArgsConstructor
public class RedisPageResult<T> {/*** 当前页数据*/private List<T> records;/*** 总记录数*/private long total;/*** 当前页码,从0开始*/private int offset;/*** 每页条数*/private int num;}
import com.redis.lettucemod.api.StatefulRedisModulesConnection;
import com.redis.lettucemod.api.sync.RedisModulesCommands;
import com.redis.lettucemod.search.*;
import com.yttxg.nova.dms.service.redis.bo.RedisPageResult;
import jakarta.annotation.Resource;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.pool2.impl.GenericObjectPool;
import org.springframework.stereotype.Service;import java.util.List;
import java.util.Map;
import java.util.function.Consumer;
import java.util.function.Function;/*** @Package com.yttxg.nova.dms.service.redis* @Description redis搜索服务类* @Author xxxxx* @Date 2025/7/2 15:16* @Version 1.0* Modification History:* Date                  Author      Version     Description* ------------------------------------------------------------------* 2025/7/2 15:16       xxxxx     1.0        1.0 Version*/
@Slf4j
@Service
@RequiredArgsConstructor
public class RedisSearchService {@Resource(name = "redisConnectionPool")GenericObjectPool<StatefulRedisModulesConnection<String, String>> pool;private StatefulRedisModulesConnection<String, String> connection() {try {return pool.borrowObject();} catch (Exception e) {throw new RuntimeException("获取 redis 链接失败", e);}}private void consumeWithCommands(Consumer<RedisModulesCommands<String, String>> consumer) {try (var connection = connection()) {RedisModulesCommands<String, String> commands = connection.sync();consumer.accept(commands);}}private <T> T applyWithCommands(Function<RedisModulesCommands<String, String>, T> function) {try (var connection = connection()) {RedisModulesCommands<String, String> commands = connection.sync();return function.apply(commands);}}/*** 创建一个新的搜索索引*/public void createIndex(String indexName, String prefix, List<Field<String>> fields) {consumeWithCommands(commands -> {List<String> indexList = commands.ftList();if (indexList.contains(indexName)) {log.info("索引 [{}] 已存在", indexName);return;}CreateOptions<String, String> options = CreateOptions.<String, String>builder().prefix(prefix).defaultLanguage(Language.CHINESE).on(CreateOptions.DataType.HASH).build();commands.ftCreate(indexName, options, fields.toArray(new Field[0]));log.info("创建索引: [{}]", indexName);});}/*** 批量插入文档*/public void batchInsertDocuments(String prefix, Map<String, Map<String, String>> documents) {consumeWithCommands(commands -> {documents.forEach((id, doc) -> {String key = prefix + id;commands.hset(key, doc);});});}/*** 插入文档*/public void insertDocuments(String prefix, String id, Map<String, String> doc) {consumeWithCommands(commands -> {String key = prefix + id;commands.hset(key, doc);});}/*** 分页搜索*/public SearchResults<String, String> searchWithPaging(String indexName, String query, int offset, int num) {return applyWithCommands(commands -> {SearchOptions<String, String> options = SearchOptions.<String, String>builder().limit(offset, num).build();return commands.ftSearch(indexName, query, options);});}public RedisPageResult<Document<String, String>> searchWithPagingResult(String indexName, String query, int offset, int num) {SearchResults<String, String> rawResults = searchWithPaging(indexName, query, offset, num);return new RedisPageResult<>(rawResults, rawResults.getCount(), offset, num);}/*** 简单搜索(不分页)*/public SearchResults<String, String> search(String indexName, String query) {return applyWithCommands(commands -> commands.ftSearch(indexName, query));}}

5.如何使用

已提供批量插入方法

List<Field<String>> fields = List.of(Field.numeric("id").build(), Field.text("content").sortable(true).build());
redisSearchService.createIndex("elements-idx", "element:", fields);
Map<String, String> doc = new HashMap<>();
String docId = DigestUtil.sha256Hex(element+id).substring(0, 32);
doc.put("id", String.valueOf(id));
doc.put("content", element);
redisSearchService.insertDocuments("element:", docId, doc);

6.查询

public class RedisSearchController {@Resourceprivate RedisSearchService redisSearchService;@GetMapping("/element")@Operation(description = "获取要素信息", summary = "获取要素信息")public CommonResult<RedisPageResult<Document<String, String>>> getElementListPage(@RequestParam String element,@RequestParam Integer offset,@RequestParam Integer num) {RedisPageResult<Document<String, String>> pageResult = redisSearchService.searchWithPagingResult("elements-idx", element, offset, num);return CommonResult.success(pageResult);}
}

7.查询结果

在这里插入图片描述

http://www.dtcms.com/wzjs/329705.html

相关文章:

  • 发布个人免费网站的一般流程图营销软文范例大全300
  • 济南企业网站制作搜索引擎分析论文
  • 怎么做网站商城电商网络营销
  • 哈尔滨香坊城乡建设委员会网站线上推广方案怎么写
  • oppo应用商店下载官方appseo推广的全称是
  • 东莞企业网站建设方案seo搜索优化软件
  • 做网站周记站长之家是什么网站
  • 儿童故事网站建设推广网站多少钱
  • 南京网站建设要多少钱杭州seo网站
  • 为什么网站 关键词策划seo技术外包
  • 聊城网站建设推广企业网站优化软件
  • 坑梓网站建设济宁百度推广价格
  • 网站建设视觉设计seo营销网站
  • 设置网站字体北京网站优化推广公司
  • 公司网站怎么做推广win11优化大师
  • asp网站跳转浏览器ttkefu在线客服系统官网
  • 疫情防控措施再优化福建seo排名
  • 长沙本土网站制作公司班级优化大师免费下载学生版
  • 阜阳 做网站网络营销外包网络推广
  • 利用网站制作网页网页查询
  • 杭州网站建设nuoweb大学生网页制作成品模板
  • 专门做日本旅游的网站公司seo是指什么意思
  • 哈尔滨网站开发公司百度 竞价排名
  • 万网是做网站的吗seo相关岗位
  • 网站建设有关数据库的代码行业关键词一览表
  • 谷歌英文网站推广网络seo外包
  • 江苏南京疫情最新消息小程序seo
  • 建立网站需要什么设备上海seo公司排名榜
  • 廊坊网站制作网站常州网站seo
  • 企业展厅建设公司怎么优化一个网站