031春データElasticsearchの研究ノート

Elasticsearch Javaクライアントは、以下の便利な場所のいくつかを提供してきました。

  • 多くの場所は、Javaの文字列連結でのステッチJSON文字列を必要とし、あなたはどのようにひどい知っておくべきこと

  • 彼らはJSONにオブジェクトをシリアル化するために、独自のストレージが必要

  • 結果は、また、オブジェクトをデシリアライズするために、独自の調査を必要とします

したがって、我々は、ネイティブElasticsearchにクライアントAPIを説明するために、ここではありません。

しかし、春が提供するキット学習:春データelasticsearchを

1.はじめに

春データElasticsearch春データプロジェクトのサブモジュールです。

春データの使命は、まだ基礎となるデータストアの特殊な特性を維持しながら、データアクセスのための身近なと一貫したSpringベースのプログラミングモデルを提供することです。

これは、データアクセス技術、リレーショナルデータベースと非リレーショナルデータベースを利用し、地図削減の枠組みとクラウドベースのデータサービスが容易になります。これは、特定のデータベースに固有の多くのサブプロジェクトが含まれている傘のプロジェクトです。これらのエキサイティングな技術プロジェクトの背後に、それは多くの企業や開発者の協力の開発で構成されています。

スプリングデータの使命は、かどうかリレーショナルデータベース(MySQLなど)、または(例えばRedisのような)非リレーショナルデータベース、または同様Elasticsearchそのようなインデックスデータベース、データの多様にアクセスするための統一プログラミング・インタフェースを提供することです。これにより、開発効率を向上させるために、コード開発を簡素化します。

それは多くの異なるデータ操作モジュールが含まれています。

 

 

春データElasticsearchページ:https://projects.spring.io/spring-data-elasticsearch/

特徴:

  • Springベースのサポート@ConfigurationJava構成またはXML構成

  • クラスは、ESを操作するための便利な手段を提供しますPOJO間の自動マッピングへのインテリジェントドキュメントの実現を含みます。ElasticsearchTemplate

  • 機能豊富なオブジェクトマップを達成するために、データ変換サービスのSpringの使用

  • 複数の異なるデータ・フォーマットをサポートするために、アノテーションベースのメタデータ・マッピング・モードが、拡張することができます

  • 自動的に(同様のMyBatisの、それが自動的にインタフェースに従って実装された)コードを記述することは実質的に手動操作することなく、対応する永続層インターフェース実装方法を生成します。もちろん、人工的なカスタムクエリをサポートしています

 2. デモプロジェクトを作成します。

私たちは(Mavenを使用して、春の足場をお勧めしません Elasticsearchを学ぶ、新しいデモを作成するために、足場springbootの春は、バージョン番号が更新され、選択することができないので)

ポンポン依存:

<?XMLバージョン= "1.0"エンコード= "UTF-8" ?> 
< プロジェクトのxmlns = "http://maven.apache.org/POM/4.0.0" 
         のxmlns:XSI = "http://www.w3.org / 2001 / XMLスキーマ・インスタンス」
         のxsi:のschemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" > 
    < modelVersion > 4.0.0 </ modelVersion > 

    < のgroupId > lucky.elasticsearch </ のgroupId > 
    < たartifactId >ラッキー・elasticsearch </ たartifactId >
    1.0-SNAPSHOT </ バージョン> 

    < > 
        < のgroupId > org.springframework.boot </ のgroupId > 
        < たartifactId >ばねブートスタータ親</ たartifactId > 
        < バージョン> 2.1.7.RELEASE </ バージョン> 
        < relativePath />  <! - ルックアップ親リポジトリから- > 
    </ > 

    < プロパティ> 
        < project.build.sourceEncoding >UTF-8 </project.build.sourceEncoding > 
        < project.reporting.outputEncoding > UTF-8 </ project.reporting.outputEncoding > 
        < のjava.version > 1.8 </ のjava.version > 
    </ プロパティ> 

    < 依存性> 
        < 依存性> 
            < のgroupId > ORG .springframework.boot </ のgroupId > 
            < たartifactId >ばねブートスタータデータelasticsearch </ たartifactId > 
        </ 依存>
        <依存> 
            < のgroupId > org.springframework.boot </ のgroupId > 
            < たartifactId >ばねブートスタータ試験</ たartifactId > 
            < スコープ>テスト</ スコープ> 
        </ 依存> 
    </ 依存関係> 

    < 構築> 
        < プラグイン> 
            < プラグイン> 
                < groupIdを> org.springframework.boot </ groupIdを> 
                <たartifactId >春・ブートのmaven-pluginの</ たartifactId > 
            </ プラグイン> 
        </ プラグイン> 
    </ 構築> 

</ プロジェクト>

注意:バージョン2.1.7 springbootの選択、このバージョンのMavenのローカルリポジトリはすでに存在しています。

輸入依存の完了後、目に見えます。

 

application.yml設定ファイル:

春:
  データ:
    elasticsearch:
      クラスタ名:leyou 
      クラスタNodes-:127.0.0.1:9300#ポート番号9300が接続されているESです

注:クラスタ名、クラスタノードの構成ファイルはelasticsearch決定によってインストールされています

閲覧elasticsearchのインストールが見ることができたときにプロフィールます。https://www.cnblogs.com/luckyplj/p/11582656.html

クラスの案内springbootを作成します。

パッケージlucky.elasticsearch。

輸入org.springframework.boot.SpringApplication。
輸入org.springframework.boot.autoconfigure.SpringBootApplication。

/ ** 
 * springboot的引导类
 * / 
@SpringBootApplication 
パブリック クラスElasticSearchApplication {
     公共 静的 ボイドメイン(文字列[]引数){ 
        SpringApplication.run(ElasticSearchApplication。クラス)。
    } 
}

3. エンティティクラスおよび脚注

まず、エンティティ・クラスへの準備ができています:

以下のためのパッケージ変更lucky.elasticsearch.domain; 

パブリック クラス項目{ 
    ロング上記IDを述べ、
    文字列のタイトル; // タイトル 
    文字列のカテゴリ; // カテゴリー 
    文字列ブランド; // ブランド 
    ダブル価格; // 価格 
    のStringロイヤリティーフリー; // 画像が取り組む

    パブリック(ロングのgetIdを) {
         戻りID; 
    } 

    公共 ボイドSETID(ロングID){
         この .ID = ID; 
    } 

    パブリック文字列あるgetTitle(){
         戻りタイトル; 
    } 

    公共 ボイドのsetTitle(文字列のタイトル){
         この .TITLE = タイトル。
    } 

    パブリック文字列のgetCategory(){
         戻りカテゴリ。
    } 

    公共 ボイドsetCategory(文字列カテゴリ){
         この .category = カテゴリ; 
    } 

    パブリック文字列thisはgetBrand(){
         戻りブランド; 
    } 

    公共 ボイドsetBrand(文字列ブランド){
         この .brand = ブランド; 
    } 

    公共ダブルgetPrice(){
         戻り価格。
    } 

    パブリック setPrice(ダブル価格){
         この .price = 価格。
    } 

    パブリック文字列getImages(){
         戻り画像を、
    } 

    公共 ボイドsetImages(文字列画像){
         これは = .images 画像を、
    } 
}

 

おすすめ

転載: www.cnblogs.com/luckyplj/p/11596935.html