Partage de technologie

Démonstration des instances elasticsearch 8.14.1 et Spring Data elasticsearch

2024-07-08

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

Créer un projet et une configuration

Implémentez trois types d’API.

  1. Rechercher par nom
  2. Recherche par catégorie
  3. Selon gamme de prix

Créez un projet Spring Boot et ajoutez des dépendances elasticsearch

Configurer 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();
    }
}

Plus d'adresses de référence de configuration

Mappage d'objets Mappage d'objets

Spring Data Elasticsearch peut mapper des objets en JSON, les stocker dans ES ou les convertir en objets.

@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;
}
  • @Document : stocke l'objet de classe dans un index nommé itemindex
  • @Identifiant : Assurez-vous que le document est unique dans l'index.
  • @Champ : Définir ou mapper des champs dans le document

En savoir plus sur la référence de mappage d'objets : Mappage d'objets Elasticsearch

Recherche élastique Dépôts

Intégrer la classe ElasticsearchRepository et héritersave(), saveAll(),findAll() et d'autres méthodes. ElasticsearchRepository génère des requêtes basées sur les noms de méthodes.

public interface ItemRepository 
        extends ElasticsearchRepository