Elasticsearch核心概念
MYSQL(relational DB) | Databases(數據庫) | Tables(表) | Rows(行) | Columns(列) |
---|---|---|---|---|
Elasticsearch | Indexes(索引) | Types(類型) | Documents(文檔) | Fields(字段) |
創建索引庫 :
請求方式:PUT
請求url:http://localhost:9200/blog1
創建索引時配置映射
請求方式:POST
請求url:http://127.0.0.1:9200/blog1/hello/_mapping
刪除索引
請求方式:DELETE
請求url:http://localhost:9200/blog1
創建文檔
請求方式:POST
請求url:http://localhost:9200/blog1/article/1
修改文檔
請求方式:POST
請求url:http://localhost:9200/blog1/article/1
刪除文檔
請求方式:DELETE
請求url:http://localhost:9200/blog1/article/1
根據id查詢
請求方式:GET
請求url:http://localhost:9200/blog1/article/1
querystring查詢
請求方式:POST
請求url:http://localhost:9200/blog1/article/_search
請求體:
{ "query": { "query_string": { "default_field": "title", "query": "搜索服務器" } } }
term查詢
請求方式:POST
請求url:http://localhost:9200/blog1/article/_search
請求體:
{ "query": { "term": { "title": "搜索" } } }
集羣配置
#節點3的配置信息:
#集羣名稱,保證唯一 cluster.name: my-Elasticsearch
#節點名稱,必須不一樣 node.name: node-3
#必須爲本機的ip地址 network.host: 127.0.0.1
#服務端口號,在同一機器下必須不一樣 http.port: 9203
#集羣間通信端口號,在同一機器下必須不一樣 transport.tcp.port: 9303
#設置集羣自動發現機器ip集合 discovery.zen.ping.unicast.hosts: ["127.0.0.1:9301","127.0.0.1:9302","127.0.0.1:9303"]
springData與es整合
導入Spring Data ElasticSearch座標
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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>com.itheima</groupId>
<artifactId>itheima_elasticsearch_demo3</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>5.6.8</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>transport</artifactId>
<version>5.6.8</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-to-slf4j</artifactId>
<version>2.9.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.24</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.21</version>
2)創建applicationContext.xml配置文件,引入elasticsearch命 名空間
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.12</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.8.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.8.1</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-elasticsearch</artifactId>
<version>3.0.5.RELEASE</version>
<exclusions>
<exclusion>
<groupId>org.elasticsearch.plugin</groupId>
<artifactId>transport-netty4-client</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.0.4.RELEASE</version>
</dependency>
</dependencies>
</project>
創建applicationContext.xml配置文件,引入elasticsearch命 名空間
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:elasticsearch="http://www.springframework.org/schema/data/elasticsearch" xsi:schemaLocation="
3)編寫實體Article
4)編寫Dao
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/data/elasticsearch http://www.springframework.org/schema/data/elasticsearch/springelasticsearch-1.0.xsd">
</beans>
編寫實體Article
編寫Dao
配置applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
7)配置實體
基於spring data elasticsearch註解配置索引、映射和實體的關係
xmlns:elasticsearch="http://www.springframework.org/schema/data/elasticsearch" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/data/elasticsearch http://www.springframework.org/schema/data/elasticsearch/springelasticsearch-1.0.xsd ">
<!-- 掃描Dao包,自動創建實例 -->
<elasticsearch:repositories base-package="com.itheima.dao"/>
<!-- 掃描Service包,創建Service的實體 -->
<context:component-scan base-package="com.itheima.service"/>
<!-- 配置elasticSearch的連接 -->
<!-- 配置elasticSearch的連接 -->
<elasticsearch:transport-client id="client" cluster-nodes="localhost:9300" cluster-name="elasticsearch"/>
<!-- ElasticSearch模版對象 -->
<bean id="elasticsearchTemplate" class="org.springframework.data.elasticsearch.core.ElasticsearchTemplate">
<constructor-arg name="client" ref="client"></constructor-arg>
</bean>
</beans>
配置實體
創建測試類SpringDataESTest