技術共有

elasticsearch 8.14.1 と Spring Data elasticsearch インスタンスのデモ

2024-07-08

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

プロジェクトと構成を作成する

3種類のAPIを実装します。

  1. 名前で検索
  2. カテゴリから探す
  3. 価格帯に応じて

Spring Boot プロジェクトを作成し、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 という名前のインデックスに保存します
  • @ID処置: ドキュメントがインデックス内で一意であることを確認してください。
  • @分野: ドキュメント内のフィールドを定義またはマップします

オブジェクト マッピングのリファレンスの詳細: Elasticsearch オブジェクト マッピング

エラスティックサーチ リポジトリ

ElasticsearchRepositoryクラスを統合して継承するsave(), saveAll(),findAll()およびその他の方法。 ElasticsearchRepository はメソッド名に基づいてクエリを生成します。

public interface ItemRepository 
        extends ElasticsearchRepository