Elasticsearch常用操作解析-创新互联
创建Maven管理的Java项目
在pom.xml中添加依赖:
正宁网站建设公司创新互联建站,正宁网站设计制作,有大型网站制作公司丰富经验。已为正宁1000多家提供企业网站建设服务。企业网站搭建\成都外贸网站制作要多少钱,请找那个售后服务好的正宁做网站的公司定做!6.1.1
org.elasticsearch.client
transport
${es.version}
然后创建一个单元测试类ESApp:
private TransportClient client;
@Before
public void setUp() throws Exception {
Settings settings = Settings.builder()
.put("cluster.name", "mycluster")
.put("client.transport.sniff", "true")//增加自动嗅探配置
.build();
client = new PreBuiltTransportClient(settings);
client.addTransportAddress(new TransportAddress(InetAddress.getByName("10.8.24.94"), 9300));
System.out.println(client.toString());
}
运行后报错
java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/JsonFactory
com.fasterxml.jackson.core
jackson-core
2.9.3
com.fasterxml.jackson.core
jackson-databind
2.9.3
com.fasterxml.jackson.core
jackson-annotations
2.9.3
运行后成功拿到ES的client:
创建一个Index
@Test
public void createIndex() {
client.admin().indices().prepareCreate(INDEX).get();
System.out.println("创建Index成功");
}
删除一个Index
@Test
public void deleteIndex() {
client.admin().indices().prepareDelete(INDEX).get();
System.out.println("删除Index成功");
}
放入数据的三种方式
//不推荐使用,太繁琐拼json格式
@Test
public void createDoc() {
String json = "{\"name\":\"若泽数据\"}";
IndexResponse response = client.prepareIndex(INDEX, TYPE, "100")
.setSource(json, XContentType.JSON)
.get();
}
//推荐使用
@Test
public void test01() throws Exception {
Map json = new HashMap();
json.put("name", "ruozedata");
json.put("message", "trying out Elasticsearch");
IndexResponse response = client.prepareIndex(INDEX, TYPE, "101").setSource(json).get();
System.out.println(response.getVersion());
}
//推荐使用
@Test
public void test02() throws Exception {
XContentBuilder builder = jsonBuilder()
.startObject()
.field("user", "ruoze")
.field("postDate", new Date())
.field("message", "trying out Elasticsearch")
.endObject();
IndexResponse response = client.prepareIndex(INDEX, TYPE, "102").setSource(builder).get();
System.out.println(response.getVersion());
}
拿到一条数据
@Test
public void getDoc() {
GetResponse response = client.prepareGet(INDEX, TYPE, "100").get();
System.out.println(response.getSourceAsString());
}
拿到多条数据
@Test
public void getDocsByIds() {
MultiGetResponse responses = client.prepareMultiGet()
.add(INDEX, TYPE,"100")
.add(INDEX, TYPE, "101", "102", "1000")
.get();
for (MultiGetItemResponse response : responses) {
GetResponse res = response.getResponse();
if (res.isExists()) {
System.out.println(res);
} else {
System.out.println("没有这条数据");
}
}
}
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
网站题目:Elasticsearch常用操作解析-创新互联
当前网址:http://scyanting.com/article/dscjcd.html