Meilisearch spring boot starter

标签:

本文出自jvm123.com-java技术分享站:http://jvm123.com/2021/02/meilisearch-spring.html

Meilisearch spring boot starter 为一个在springboot项目中引入即可使用的spring boot starter, 提供了对Meilisearch 搜索引擎的相关操作。由于官方api没有提供对对象的操作,对象的操作,需要先转换为json再进行,诸如此类。本项目在其基础上,提供了对象操作、自动解析和转换对象、自动解析搜索结果等功能,用法类似于jpa的repository,简单易用。

Meilisearch spring boot starter maven 依赖

<!-- https://mvnrepository.com/artifact/com.jvm123/meilisearch-spring-boot-starter -->
<dependency>
    <groupId>com.jvm123</groupId>
    <artifactId>meilisearch-spring-boot-starter</artifactId>
    <version>1.0</version>
</dependency>

配置

 meilisearch: 
  host-url: http://localhost:7700 
  api-key: 

实体对象对应的索引创建

只需要在实体类加上注解com.jvm123.meilisearch.anotation.Index,就会自动创建索引。注解可以设置uid和primaryKey,如果不设置,uid会使用小写的类名称,primaryKey默认为id。如下:

@Index(uid="post", primaryKey="id")
public class Post {

   private String id;
   private String title;
   private String content;
   private Date time;
   // ...
}

对象基本操作

对象的操作,只需要继承MeilisearchRepository<T>,然后使用其中的方法,具体方法如下:

    T get(String identifier);

   List<T> list();

   List<T> list(int limits);

   long add(T t);

   long update(T t);

   long add(List<T> list);

   long update(List<T> list);

   long delete(String identifier);

   long deleteBatch(String... identifiers);

   long deleteAll();

   SearchResult<T> search(String q);

   SearchResult<T> search(SearchRequest sr);

   Settings getSettings();

   UpdateStatus updateSettings(Settings settings);

   UpdateStatus resetSettings();

   UpdateStatus getUpdate(int updateId);

   UpdateStatus[] getUpdates();

MeiliSearch搜索

使用 MeilisearchRepository<T>的以下两个方法可进行搜索:


  SearchResult<T> search(String q);

  SearchResult<T> search(SearchRequest sr);

搜索结果会解析为SearchResult<T>类型。

如果实体类继承了MatchedBean,则会自动将搜索结果中的matchinfo也进行转换。如下:


   SearchRequest sr = new SearchRequest("喵星人")
      .setMatches(true)
      .setAttributesToHighlight(new String[]{"name", "title", "des", "time"});
   SearchResult<Movie> searchResult = movieRepository.search(sr);
   List<Movie> hits = searchResult.getHits();
   System.out.println(hits);

《Meilisearch spring boot starter》有2个笔记:

发表评论