当前位置:网站首页>Redis implements a high-performance full-text search engine -- redisearch
Redis implements a high-performance full-text search engine -- redisearch
2022-07-05 08:42:00 【Sea of sperm whales】
RediSearch It's a Redis modular , by Redis Provide query 、 Secondary indexing and full-text search , His performance is even better than es higher .
install :
docker pull redislabs/redismod:preview
Start the container :
Note that the port number should not be the same as redis The conflict :
docker run -p 6399:6379 --name redismod -v /mydata/redismod/data:/data -d redislabs/redismod:preview
Use springboot Integrate :
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>
Code
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);
// Define an index schema
Schema schema = new Schema().addTextField("title", 5.0).addTextField("body", 1.0).addNumericField("star");
// For the first time run You can comment it out first
client.dropIndex();// Clear the index first
// Create index
client.createIndex(schema, Client.IndexOptions.Default());
// Add document to index
Map<String, Object> fields1 = createDocument(" Any video ", " Content that does not exist in the new document will be preserved . The fields existing in both will be overwritten ", 1000);
Map<String, Object> fields2 = createDocument(" Any communication ", " Content that does not exist in the new document will be lost ", 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(" Content ").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;
}
}
边栏推荐
- Daily question - input a date and output the day of the year
- [formation quotidienne - Tencent Selection 50] 557. Inverser le mot III dans la chaîne
- Halcon Chinese character recognition
- 猜谜语啦(10)
- 实例009:暂停一秒输出
- Arduino+a4988 control stepper motor
- Tips 1: Web video playback code
- 287. 寻找重复数-快慢指针
- Numpy pit: after the addition of dimension (n, 1) and dimension (n,) array, the dimension becomes (n, n)
- 关于线性稳压器的五个设计细节
猜你喜欢
Halcon clolor_ pieces. Hedv: classifier_ Color recognition
猜谜语啦(10)
One question per day - replace spaces
Numpy pit: after the addition of dimension (n, 1) and dimension (n,) array, the dimension becomes (n, n)
Classification of plastic surgery: short in long long long
C# LINQ源码分析之Count
[noi simulation] juice tree (tree DP)
[nas1] (2021cvpr) attentivenas: improving neural architecture search via attentive sampling (unfinished)
剑指 Offer 09. 用两个栈实现队列
Guess riddles (7)
随机推荐
Guess riddles (4)
Sword finger offer 09 Implementing queues with two stacks
Redis实现高性能的全文搜索引擎---RediSearch
STM32 summary (HAL Library) - DHT11 temperature sensor (intelligent safety assisted driving system)
实例009:暂停一秒输出
剑指 Offer 05. 替换空格
Infected Tree(树形dp)
TypeScript手把手教程,简单易懂
[three tier architecture]
Guess riddles (10)
Bluebridge cup internet of things basic graphic tutorial - GPIO output control LD5 on and off
Guess riddles (6)
Shift operation of complement
How to manage the performance of R & D team?
696. 计数二进制子串
Search data in geo database
Example 005: three numbers sorting input three integers x, y, Z, please output these three numbers from small to large.
Bluebridge cup internet of things basic graphic tutorial - GPIO input key control LD5 on and off
[牛客网刷题 Day4] JZ32 从上往下打印二叉树
C语言标准函数scanf不安全的原因