Обмен технологиями

elasticsearch 8.14.1 и демонстрация экземпляра elasticsearch Spring Data

2024-07-08

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

Создать проект и конфигурацию

Реализуйте три типа API.

  1. Поиск по имени
  2. Поиск по категории
  3. По ценовому диапазону

Создайте проект весенней загрузки и добавьте зависимости elasticsearch.

Настроить 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();
    }
}

Дополнительные справочные адреса конфигурации

Сопоставление объектов Сопоставление объектов

Spring Data Elasticsearch может сопоставлять объекты с JSON, сохранять их в ES или преобразовывать в объекты.

@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;
}
  • @Документ: Сохраните объект класса в индексе с именем itemindex.
  • @Идентификатор: убедитесь, что документ уникален в индексе.
  • @Поле: определение или сопоставление полей в документе.

Подробнее о сопоставлении объектов: Отображение объектов Elasticsearch

Elasticsearch Репозитории

Интегрируйте класс ElasticsearchRepository и наследуйте его.save(), saveAll(),findAll() и другие методы. ElasticsearchRepository генерирует запросы на основе имен методов.

public interface ItemRepository 
        extends ElasticsearchRepository