elasticsearch系列-03(elasticsearch与java的整合)

来源:互联网 发布:兰州大学网络教育网址 编辑:程序博客网 时间:2024/06/11 04:26


本文讲述elasticsearch与java项目的整合


1.加入elasticsearch的maven依赖

加入的包一定要与自己的elasticsearch版本保持一致

    <dependency>      <groupId>org.elasticsearch</groupId>      <artifactId>elasticsearch</artifactId>      <version>1.7.3</version>    </dependency>

2.代码测试


package tv.xxx.util;import org.elasticsearch.action.delete.DeleteResponse;import org.elasticsearch.action.get.GetResponse;import org.elasticsearch.action.index.IndexResponse;import org.elasticsearch.action.search.SearchRequestBuilder;import org.elasticsearch.action.search.SearchResponse;import org.elasticsearch.action.search.SearchType;import org.elasticsearch.client.Client;import org.elasticsearch.client.transport.TransportClient;import org.elasticsearch.common.settings.ImmutableSettings;import org.elasticsearch.common.settings.Settings;import org.elasticsearch.common.transport.InetSocketTransportAddress;import org.elasticsearch.common.xcontent.XContentFactory;import org.elasticsearch.index.query.BoolQueryBuilder;import org.elasticsearch.index.query.QueryBuilders;import org.elasticsearch.index.query.QueryStringQueryBuilder;import java.io.IOException;/** * Created by user on 16/5/27. */public class ElasticsearchTest {    /**     * 数据添加     * curl -XPOST localhost:9200/video/md/1 -d '{ "tvId":"1001", "name": "武媚娘第一集","order":1}'     * curl -XPOST localhost:9200/video/md/2 -d '{ "tvId":"1002", "name": "武媚娘第二集","order":2}'     */    static Settings settings = ImmutableSettings.settingsBuilder().put("client.transport.sniff", true).put("cluster.name", "elasticsearch").build();    static Client client = new TransportClient(settings).addTransportAddress(new InetSocketTransportAddress("10.3.0.248", 9300));    public static void main(String [] args)throws IOException{        System.out.println(searchEl());        //deleteEl();        //addEl();    }    public static void addEl() throws IOException{        IndexResponse response = client.prepareIndex("video", "md", "4")                .setSource( XContentFactory.jsonBuilder()                        .startObject()                        .field("tvId", "2002")                        .field("name", "武大郎第二集")                        .field("order", 2)                        .endObject())                .setTTL(8000)                .execute().actionGet();        System.out.println(response.getId());    }    //查询    //wiki:http://www.boyunjian.com/javadoc/org.elasticsearch/elasticsearch/0.20.0.RC1/_/org/elasticsearch/index/query/QueryBuilder.html    public static String searchEl(){        //根据Id获取数据        GetResponse responseGet = client.prepareGet("video","md","1").execute().actionGet();        //return responseGet.getSourceAsString();        SearchRequestBuilder builder = client.prepareSearch("video").setTypes("md").setSearchType(SearchType.DEFAULT).setFrom(0).setSize(100);        BoolQueryBuilder qb = QueryBuilders.boolQuery().should(new QueryStringQueryBuilder("武媚娘").field("name"));        builder.setQuery(qb);        SearchResponse response = builder.execute().actionGet();        System.out.println("  " + response);        System.out.println(response.getHits().getTotalHits());        return response+"";    }    //删除    public static void deleteEl(){        DeleteResponse response = client.prepareDelete("video", "md", "1") .setOperationThreaded(false).execute().actionGet();        System.out.println(response.getId());    }}


done

1 0