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 二、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日
    浏览(11)
  • 高性能分布式缓存Redis(三) 扩展应用

    高性能分布式缓存Redis(三) 扩展应用

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    【虹科干货】Redis Enterprise 自动分层技术:大数据集高性能解决方案

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

    2024年02月05日
    浏览(11)
  • 轻松掌握组件启动之Redis集群扩展秘籍:轻松扩容与缩容,释放高性能潜能

    轻松掌握组件启动之Redis集群扩展秘籍:轻松扩容与缩容,释放高性能潜能

    在我们原始的集群基础上,我们决定增加一台主节点(8007)和一台从节点(8008),这样新增的节点将会在下图中以虚线框的形式显示在集群中。 1: 首先,在 /usr/local/redis-cluster 目录下创建两个文件夹,分别命名为 8007 和 8008。接下来,将 8001 文件夹下的 redis.conf 文件复制到 8007 和

    2024年02月08日
    浏览(7)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包