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

 Insert picture description here

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;
    }

}

 Insert picture description here

原网站

版权声明
本文为[Sea of sperm whales]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/186/202207050839529517.html