①,docker啓動Elasticsearchhtml
#下載鏡像 docker pull registry.docker-cn.com/library/elasticsearch #運行鏡像 #注意:elasticsearch 默認佔用2g內存,因此這裏要指定 #-d 後臺運行,-p 暴露的端口 ,--name 指定容器名,最後帶上鏡像id便可 docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 --name es 671bb2d7da44 #將容器的文件映射到宿主機上 docker cp ten_es:/usr/share/elasticsearch/config/elasticsearch.yml /usr/share/elasticsearch.yml 安裝es docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 --name ten_es 5acf0e8da90b 進入容器 docker exec -it ten_es /bin/bash 中止容器 docker stop ten_es 刪除容器 docker rm ten_es 開發容器的es,讓外部訪問 vim /etc/security/limits.conf elsearch hard nofile 65536 elsearch soft nofile 65536 vim /etc/sysctl.conf vm.max_map_count=655360
②,檢查elasticsearch 是否啓動成功java
看到以下界面,說明啓動成功web
③,pom依賴spring
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.2.RELEASE</version> </parent> <dependencies> <!-- 這裏使用 jest 操做elasticsearch ,很是方便--> <dependency> <groupId>io.searchbox</groupId> <artifactId>jest</artifactId> <version>5.3.3</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>
④,application.properties 配置docker
server.port=8082 spring.elasticsearch.jest.uris=http://192.168.43.28:9200 spring.elasticsearch.jest.username=guest spring.elasticsearch.jest.password=guest
它爲咱們注入了JestClient ,而咱們對elasticsearch的操做是經過它來完成的vim
@Bean(destroyMethod = "shutdownClient") @ConditionalOnMissingBean public JestClient jestClient() { JestClientFactory factory = new JestClientFactory(); factory.setHttpClientConfig(createHttpClientConfig()); return factory.getObject(); }
import io.searchbox.annotations.JestId; public class Ariticle { @JestId private Integer id; private String title; private String author; private String content; }
import com.es.elasticsearch.bean.Ariticle; import io.searchbox.client.JestClient; import io.searchbox.core.Index; import io.searchbox.core.Search; import io.searchbox.core.SearchResult; @RestController public class BookController { @Autowired private JestClient jestClient; @RequestMapping("ariticle") public String create() { Ariticle ariticle=new Ariticle(); ariticle.setId(1); ariticle.setTitle("暴擊"); ariticle.setAuthor("xiao su"); ariticle.setContent("三狗行,必有單身"); Index index = new Index.Builder(ariticle).index("qiyouji").type("news").build();//構建一個索引功能 try { jestClient.execute(index); } catch (IOException e) { e.printStackTrace(); } return "建立成功"; } }
①,瀏覽器訪問ariticle 方法瀏覽器
說明整合成功,更多Elasticsearch的用法,請參考Elasticsearch 官網bash
https://www.elastic.co/guide/cn/elasticsearch/guide/current/_indexing_employee_documents.htmlapp