①,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