検索
第二に、概念
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()); }