春ブーツと検索/ ElasticSearch

 

検索

 

 

 

第二に、概念

 

 

 

 

 

 

 

 

 

 

 

 

ElasticSearchをテスト第三に、統合

•引入春ブート・スターター・データelasticsearch

•ElasticSearchの春データに対応するバージョンをインストールします。

elasticsearchインストール:

[root@localhost docker]# docker pull elasticsearch
这种方式下载一般会很慢,或者直接卡死,我们可以使用阿里云的镜像加速服务您可以通过修改 daemon配置文件 /etc/docker/daemon.json 来使用加速器
1須藤MKDIR -pは/ etc / ドッカー
 2須藤ティー/etc/docker/daemon.json << - 'EOF'
 3  {
 4    "レジストリミラー":[ "HTTPS:aliyuncs.com" ]
 5  }
 6  EOF
 7須藤systemctl daemon- リロード
 8須藤systemctl再起動ドッカ
コードの表示

ESは実行ミラーリング

[ルート@ localhostの〜]#]ドッキングウィンドウの実行-d -e ES_JAVA_OPTS = " - Xms256m -Xmx256mは" -p 9200を-d:9200 -p 9300:9300 --name ES1 c71178df2dd5

-e ES_JAVA_OPTS =「 - Xms256m -Xmx256m」
elasticsearchは、Javaの実現であるため、我々は、パラメータ-eを追加することにより、ヒープメモリのサイズを制限するので、ヒープメモリのデフォルトの初期サイズは、仮想マシンがメモリ不足エラーで、その後、起動します2Gになります.- XMSは、初期ヒープサイズ、-Xmxが使用される最大ヒープメモリである。
ウェブ通信に各ノード間の分散、空腹elasticsearch通信の場合のデフォルトのポート9200を使用して、ポート9300を使用する必要があり、そう我々は2つのポートマッピングを行う必要があります。 

正常に起動した後、ブラウザでアクセスすることができます。

 

 

 

 

 

 

• application.yml配置

自動的に設定さElasticsearchRepository•春ブーツ、ElasticsearchTemplate、冗談

•テストElasticSearch

使用springdata統合ES

輸入依存度

1   <! -スプリングブート默认使用的是springdata进行操作ES - >
 2          <依存性>
 3              <のgroupId> org.springframework.boot </ groupIdを>
 4              <たartifactId>ばねブートスタータデータelasticsearch </たartifactId>
 5          </依存関係>
コードの表示

構成ノード名とノードの通信ポート

スプリング:
   データ:
    elasticsearch:
      クラスタ - 名:ノード#elasticsearchの名前
      クラスタ -nodes:192.168.124.127:9300#ポート通信ノードとの間の
コードの表示

スタートが与えられた後、交換用バージョン

このエラーは、私たちのことspringbootのバージョンと発生するマッチングよりelasticsearchバージョンによるところが大きい2つの解があり、

まず、(一般的には、アップグレード後にまだ一致しない場合があります)、springbootのバージョンアップにあります

第二は、弾性の低いバージョンを置き換えることです。(https://github.com/spring-projects/spring-data-elasticsearch)、[バージョンを参照に一致する]、我々は弾性とspringdataのそのポンポン種類の価格を求めることができますバージョンの分析の後、最後に私がアップグレードまたはダウングレードすることを決めました。

 

 

 

org.elasticsearch.transport.ConnectTransportException:[] [192.168.124.127:9300] CONNECT_TIMEOUT [1930]
コードの表示

ファイル名を指定して実行ESミラー

[ルート@ localhostの〜]#]ドッキングウィンドウの実行-e ES_JAVA_OPTS = " - Xms256m -Xmx256mは" -p 9201を-d:9200 -p 9301:9300 --name ES2 5e9d896dc62c

テスト

:( 2つの用途公式サイト:https://github.com/spring-projects/spring-data-elasticsearch
* 1書き込みElasticSearchRepositoryインターフェースサブインターフェース
* 2 ElasticSearchTemplateオペレーティングES

1.プログラム・インタフェース

1  // インターフェースは、2つの一般的な、ElasticsearchRepository有する<Tを、シリアライズID延び>
 2      // 最初のデータのタイプが格納される、第二のタイプは、主キーである
。3  パブリック インターフェイス BookRepository 延び ElasticsearchRepository <ブック、整数> {
 4      //は命名特定の方法は、界面に公式文書を参照することができ、カスタムの方法によって調製することができる
5。     パブリックリスト<ブック> findBookByBookNameLike(文字列bookName);
 6 }
コードの表示

図2に示すように、エンティティ・クラスの調製

// @Document役割は、クラス名とタイプインデックス保存するエンティティを指定することです 
@Document(INDEXNAME =「atguigu」、タイプ=「ブック」パブリック クラスブック{
     プライベート;整数ID
     プライベート文字列の作者;
     プライベート文字列bookNameを; 
}
コードの表示

3テストクラス

1  @Autowired
 2      BookRepository bookRepository。
3  
4      @Test
 5      公共 ボイドTEST02(){
 6          ブックブック= 新しいブック();
7          book.setId(1 )。
8          book.setAuthor( "刘猛" )。
9          book.setBookName( "我是特种兵" )。
10          bookRepository.index(書籍);
11      }
 12      
13      @Test
 14      公共 ボイドTEST03(){
 15         のために(本ブック:bookRepository.findBookByBookNameLike( "我")){
 16              のSystem.out.println(書籍)
17          }
 18      }
コードの表示

4つのアクセス結果

 

 

 冗談統合ESを使用してください

jset githubの(https://github.com/searchbox-io/Jest/tree/master/jest

1.輸入依存度

< -のhttps:// mvnrepository.com/artifact/io.searchbox/jest - > 
        <依存> 
            <groupIdを> io.searchbox </ groupIdを> 
            <たartifactId>冗談</たartifactId> 
            <バージョン> 5.3.3 < /バージョン> 
        </依存関係>
コードの表示

2. [設定のホストとポート

春:
  elasticsearch:
    冗談:
      URIにします。http:// 192.168.124.127:9200
コードの表示

3. [スタート]テスト

  @Autowired 
    JestClient jestClient; 

    @Test 
    公共 のボイド contextLoads()がスローにIOException {
         // ドキュメントにES指数(保存)を 
        Articleこの記事は、記事この記事であった= 新しい新しいArticleこの記事は()だった。
        article.setAuthor( "zhangsan" ); 
        article.setId( 1。); 
        article.setTitle( "良いニュース" ); 
        article.setContent( "こんにちは世界" );
         // インデックスを作成し、ES指数のatguigu記事へのインデックスが。
         // 関数インデックスの構築 
        インデックスindex = 新新を。Index.Builderタイプの.INDEX( "atguigu")( "ニュース"(Articleこの記事はあった)).build(); 

        // 実行
        jestClient.execute(インデックス); 
    } 

    / ** 
     *使用冗談検索機能のフルテキストを検索します例
     * / 
    @Test 
    公共 のボイド検索は、()スローにIOException {
         // ビルドクエリがルール 
        文字列JSON = "{\ N-" + 
                ":{\ N-" + "\"クエリー\ 
                "\" \一致":{\ N-を" + 
                "\"コンテンツ\ ":\"こんにちは\ "\ N-" + 
                "} \ N-" + 
                "} \ N-" + 
                "} " ;
         // 検索を構築
        検索=検索新しい新しいのAddType( "ニュース"にSearch.Builder(JSON).addIndex( "atguiguを")).Build(); 

        //は、検索を実行し、検索結果を得る 
        検索結果を、検索結果= jestClient.execute(検索); 

        のSystem.out .println(result.getJsonString()); 
    }
コードの表示

 

おすすめ

転載: www.cnblogs.com/whwsoft/p/12625072.html