Redis实现高性能的全文搜索引擎---RediSearch

这篇具有很好参考价值的文章主要介绍了Redis实现高性能的全文搜索引擎---RediSearch。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

RediSearch是一个Redis模块,为Redis提供查询、二次索引和全文搜索,他的性能甚至比es还要高。

安装:

docker pull redislabs/redismod:preview

启动容器:

注意端口号不要和redis冲突了:

docker run -p 6399:6379 --name redismod  -v /mydata/redismod/data:/data -d redislabs/redismod:preview

redis 全文检索,redis,redis,搜索引擎,java

使用springboot 集成一下:

pom

		<dependency>
			<groupId>com.redislabs</groupId>
			<artifactId>jredisearch</artifactId>
			<version>1.8.1</version>
		</dependency>
		<dependency>
			<groupId>cn.hutool</groupId>
			<artifactId>hutool-all</artifactId>
			<version>5.3.10</version>
		</dependency>
		<dependency>
			<groupId>com.hankcs</groupId>
			<artifactId>hanlp</artifactId>
			<version>portable-1.7.8</version>
		</dependency>

代码

package com.example.demo.Utils.RedisearchUtills;
import io.redisearch.*;
import io.redisearch.client.AddOptions;
import io.redisearch.client.Client;
import java.util.HashMap;
import java.util.Map;

public class redisearchMain {

    public static void main(String[] args) {
        Client client = new Client("student", "120.48.54.67", 6399);

        // 定义一个索引模式
        Schema schema = new Schema().addTextField("title", 5.0).addTextField("body", 1.0).addNumericField("star");

        // 首次run 可以先注释掉
        client.dropIndex();//先清除索引

        // 创建索引
        client.createIndex(schema, Client.IndexOptions.Default());

        // 向索引中添加文档
        Map<String, Object> fields1 = createDocument("任何视频", "新文档中不存在的内容将被保留。两者中存在的字段都会被覆盖", 1000);
        Map<String, Object> fields2 = createDocument("任何通信", "新文档中不存在的内容将丢失", 500);

//        client.addDocument("doc1", fields1);
//        client.addDocument("doc2", fields2);
        Document doc1 = new Document("doc1", fields1, 1.0, null);
        Document doc2 = new Document("doc2", fields2, 1.0, null);
        AddOptions options = new AddOptions().setNosave(false);
        options.setLanguage("chinese");
        client.addDocument(doc1, options);
        client.addDocument(doc2, options);

        Query query = new Query("内容").addFilter(new Query.NumericFilter("star", 0, 1500)).setWithScores().limit(0, 10);
        SearchResult result = client.search(query);
        result.docs.stream().forEach(docs->
                System.out.println("====="+docs)
        );
    }

    private static Map<String, Object> createDocument(String title, String body, Integer price){
        Map<String, Object> fields = new HashMap<String, Object>();
        fields.put("title", title);
        fields.put("body", body);
        fields.put("star", price);
        return fields;
    }

}

redis 全文检索,redis,redis,搜索引擎,java文章来源地址https://www.toymoban.com/news/detail-563327.html

到了这里,关于Redis实现高性能的全文搜索引擎---RediSearch的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Redis核心数据结构实战与高性能解析

    目录 一、安装Redis 二、Redis线程与高性能 2.1 Redis是单线程么? 2.2 Redis读写是单线程为何这么快? 2.3 Redis如何处理并发操作命令? 三、核心数据结构实战 3.1 字符串常用操作实战 SET 存入键值对 SETNX SETEX MSET 批量存入键值对 MSETNX DECR 原子减1 DECRBY 原子减 INCR 原子加1 INCRBY 原子

    2024年02月07日
    浏览(38)
  • 高性能分布式缓存Redis(三) 扩展应用

    在并发编程中,通过锁,来避免由于竞争而造成的数据不一致问题 问题分析 现象:本地锁在多节点下失效(集群/分布式) 原因:本地锁它只能锁住本地JVM进程中的多个线程,对于多个JVM进程的不同线程间是锁不住的 解决:分布式锁(在分布式环境下提供锁服务,并且达到本地

    2024年02月12日
    浏览(47)
  • “深入理解Redis:高性能缓存和数据存储技术解析“

    标题:深入理解Redis:高性能缓存和数据存储技术解析 摘要:本文将深入探讨Redis作为一种高性能缓存和数据存储技术的原理和用法。我们将从Redis的基本特性入手,介绍其在缓存和数据存储方面的优势,并通过实际示例代码展示如何使用Redis提升应用程序的性能和可靠性。

    2024年02月16日
    浏览(37)
  • “深入理解Redis:高性能缓存与数据存储的秘密“

    标题:深入理解Redis:高性能缓存与数据存储的秘密 在现代应用程序的开发中,缓存和数据存储是非常重要的组成部分。它们不仅可以提高应用程序的性能,还可以减轻数据库和网络的负载。其中,Redis作为一种高性能的内存数据存储系统,因其出色的性能和灵活的特性而备

    2024年02月16日
    浏览(30)
  • Redis学习指南(28)-Redis高性能特性之单线程模型

    Redis是一种高性能、非关系型的内存数据库,被广泛应用于缓存、消息队列、任务队列等场景。Redis之所以能够达到如此高的性能,其中一个重要的原因就是其采用了单线程模型。 Redis使用单线程模型指的是主要的工作线程只有一个,这个线程负责处理所有的客户端请求和对数

    2024年01月24日
    浏览(58)
  • “深入解析Redis:高性能缓存与分布式数据存储“

    标题:深入解析Redis:高性能缓存与分布式数据存储 摘要:本文将深入解析Redis,介绍其作为高性能缓存和分布式数据存储的特点和功能,并提供示例代码展示其使用方法。 正文: 一、引言 Redis是一个开源的内存数据结构存储系统,它以其高性能、灵活的数据结构以及丰富的

    2024年02月17日
    浏览(43)
  • “探索Redis:高性能键值存储数据库的实用指南“

    标题:探索Redis:高性能键值存储数据库的实用指南 引言: Redis是一种高性能的键值存储数据库,它通过将数据存储在内存中,提供了快速的读写操作。本文将介绍Redis的基本概念和常用功能,并提供示例代码帮助读者更好地理解和应用Redis。 Redis的基本概念 Redis是一个开源的

    2024年02月15日
    浏览(59)
  • Redis 分区:构建高性能、高可用的大规模数据存储解决方案

    在 Redis 中,分区是一种将数据分布在多个实例上的技术,用于处理大规模数据和提高系统性能。通过分区,可以将数据均匀地分布在多个节点上,从而减轻单个节点的负载压力,并实现水平扩展。 Redis 分区应用场景 1. 大规模数据存储 在 Redis 中,单个实例的内存有限,无法

    2024年04月14日
    浏览(37)
  • 【虹科干货】Redis Enterprise 自动分层技术:大数据集高性能解决方案

    越来越多的应用程序依赖于庞大的数据集合,而这些应用程序必须快速响应。 借助自动分层,Redis Enterprise 7.2 帮助开发人员轻松 创建超快的应用程序。何乐而不为?   Redis 将数据存储在内存中,因此应用程序能以最快的速度检索和处理数据。 然而,随着 应用程序需要处理

    2024年02月05日
    浏览(30)
  • Redis 又双叒叕改开源协议了,微软提前推出高性能替代方案 Garnet

    3 月 20 号,Redis 商业公司 CEO Rowan Trollope 在公司官方博客上宣布了一项重大变革。Redis 核心软件将从 BSD 3-Clause 许可证过渡到双重许可证模式,这一变化将从 Redis v7.4 版本开始,贯穿到未来所有的 Redis 发布版本。新的许可证模式使用了 Redis Source Available License version 2 (RSALv2) 或

    2024年04月16日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包