Condivisione della tecnologia

Dimostrazione di esempio di elasticsearch 8.14.1 e Spring Data elasticsearch

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Creare progetto e configurazione

Implementa tre tipi di API.

  1. Ricerca per nome
  2. Cerca per categoria
  3. Secondo fascia di prezzo

Crea un progetto Spring Boot e aggiungi le dipendenze elasticsearch

Configura Elasticsearch

@Configuration
@EnableElasticsearchRepositories(basePackages = "github.io.truongbn.elasticsearch.repository")
public class ClientConfig extends ElasticsearchConfiguration {
   
    @Override
    public ClientConfiguration clientConfiguration() {
   
        return ClientConfiguration.builder()
                .connectedTo("192.168.163.13:9200")
                .withBasicAuth("elastic","123456")
                .build();
    }
}

Altri indirizzi di riferimento della configurazione

Mappatura degli oggetti Mappatura degli oggetti

Spring Data Elasticsearch può mappare oggetti su JSON, archiviarli in ES o convertirli in oggetti.

@Data
@Document(indexName = "itemindex")
public class Item {
   
    @Id
    private int id;
    @Field(type = FieldType.Text, name = "name")
    private String name;
    @Field(type = FieldType.Double, name = "price")
    private Double price;
    @Field(type = FieldType.Keyword, name = "brand")
    private String brand;
    @Field(type = FieldType.Keyword, name = "category")
    private String category;
}
  • @Documento: archivia l'oggetto della classe in un indice denominato itemindex
  • @Id: assicurati che il documento sia univoco nell'indice.
  • @Campo: definire o mappare i campi nel doc

Ulteriori informazioni sul riferimento alla mappatura degli oggetti: Mapping degli oggetti Elasticsearch

Ricerca elastica Depositi

Integra la classe ElasticsearchRepository ed ereditasave(), saveAll(),findAll() e altri metodi. ElasticsearchRepository genera query in base ai nomi dei metodi.

public interface ItemRepository 
        extends ElasticsearchRepository