当前位置:网站首页>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;
}
}

边栏推荐
猜你喜欢
随机推荐
Bluebridge cup internet of things basic graphic tutorial - GPIO output control LD5 on and off
[NAS1](2021CVPR)AttentiveNAS: Improving Neural Architecture Search via Attentive Sampling (未完)
Yolov4 target detection backbone
Sword finger offer 06 Print linked list from end to end
每日一题——替换空格
Is the security account given by Yixue school safe? Where can I open an account
Shift operation of complement
Guess riddles (11)
【三层架构】
如何写Cover Letter?
Sword finger offer 09 Implementing queues with two stacks
[牛客网刷题 Day4] JZ32 从上往下打印二叉树
每日一题——输入一个日期,输出它是该年的第几天
2022.7.4-----leetcode. one thousand and two hundred
Halcon shape_ trans
C# LINQ源码分析之Count
[three tier architecture and JDBC summary]
Search data in geo database
Guess riddles (6)
Bluebridge cup internet of things competition basic graphic tutorial - clock selection




![[noi simulation] juice tree (tree DP)](/img/19/bc71e8dc3958e4cb87b31423a74617.png)




