一、pom文件所需
<elasticsearch.version>6.2.4</elasticsearch.version>
<!-- elasticsearch -->
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>${elasticsearch.version}</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-client</artifactId>
<version>${elasticsearch.version}</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>transport</artifactId>
<version>${elasticsearch.version}</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>${elasticsearch.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-elasticsearch</artifactId>
<version>3.1.3.RELEASE</version>
</dependency>
二、配置类
import java.net.InetAddress;
import java.net.UnknownHostException;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.TransportAddress;
import org.elasticsearch.transport.client.PreBuiltTransportClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class EsConfig {
@Bean
public TransportClient client() throws UnknownHostException {
Settings settings = Settings.builder().put("cluster.name", "my-search").build(); //在client初始化中设置cluster_name的名字
TransportClient client = new PreBuiltTransportClient(settings)/* 127.0.0.1 */
.addTransportAddress(new TransportAddress(InetAddress.getByName("127.0.0.1"), 9300));//服务器ip地址;
return client;
}
}
三、测试代码
user为索引的index,userinfo为索引的type.
@Autowired
private TransportClient client;
@RequestMapping("test")
public void test() {
SearchRequestBuilder srb = client.prepareSearch("user")
.setTypes("userinfo")
.setQuery(QueryBuilders.matchQuery("name", "测试"));
SearchResponse response = srb.get();
SearchHits hits = response.getHits();
for(SearchHit hit:hits) {
System.out.println(hit.getSourceAsString());
Map<String, Object> map = hit.getSourceAsMap();
for(String key:map.keySet()) {
System.out.println(key +" key对应的值为:" +map.get(key));
}
}
}