精华内容
下载资源
问答
  • 通过java API访问Elasticsearch中的数据

     所需的jar


    <!-- https://mvnrepository.com/artifact/org.elasticsearch.client/elasticsearch-rest-high-level-client -->
            <dependency>
                <groupId>org.elasticsearch.client</groupId>
                <artifactId>elasticsearch-rest-high-level-client</artifactId>
                <version>6.8.2</version>
            </dependency>
            
            <!-- https://mvnrepository.com/artifact/org.elasticsearch/elasticsearch -->
            <dependency>
                <groupId>org.elasticsearch</groupId>
                <artifactId>elasticsearch</artifactId>
                <version>6.8.2</version>
            </dependency>


    代码如下:

    private static RestHighLevelClient client;
        PageList<Logfo> ls = new PageList<Logfo>();
        PageWrapper<Logfo>  pageWrapper= new PageWrapper<Logfo>();
        
        @Override
        public RestHighLevelClient getClient() {
            client = new RestHighLevelClient(
                    RestClient.builder(new HttpHost("192.10.1.141", 9200, "http"),
                            new HttpHost("192.10.1.143", 9200, "http")));
            return client;
        }

        @Override
        public void closeClient() {
            try {
                client.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        
        //通过index、type,获取SearchRequest对象
        public SearchRequest getSearchRequest(String index,String type) {
            SearchRequest searchRequest = new SearchRequest(index);
            searchRequest.types(type);
            return searchRequest;
        }
        
        //将查询语句带入到SearchSourceBuilder中,并返回SearchRequest
        public SearchRequest getSearchRequest_QueryBuilder(SearchRequest searchRequest,QueryBuilder queryBuilder) {
            
            SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
            sourceBuilder.query(queryBuilder); //设置查询对象。可以使任何类型的 QueryBuilder
            
            //使用from size进行分页查询(深度分页)
            sourceBuilder.from(0); //设置from选项,确定要开始搜索的结果索引。 默认为0。
            sourceBuilder.size(1000); //设置大小选项,确定要返回的搜索匹配数。 默认为10。
            
            //设置一个可选的超时时间,用于控制搜索允许的时间。
            sourceBuilder.timeout(new TimeValue(60, TimeUnit.SECONDS));  
            
            sourceBuilder.sort(new ScoreSortBuilder().order(SortOrder.DESC));
            
            //将请求体加入到请求中,将SearchSourceBuilder对象添加到搜索请求中:
            searchRequest.source(sourceBuilder);
            return searchRequest;
        }
        
        
        public QueryBuilder getQueryBuilder(Logfo logInfo) {
            QueryBuilder queryBuilder;
            if(null == (logInfo.getCamera_ip()) && null == logInfo.getDate_start()) {
                //无参数查询
                queryBuilder = QueryBuilders.matchAllQuery();
            }else {
                if(null == (logInfo.getCamera_ip()) && null != logInfo.getDate_start()) {
                    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                    //带time范围参数查询
                    QueryBuilder queryBuilder_date = null;
                    try {
                        queryBuilder_date = QueryBuilders.rangeQuery("time")
                                .gte(format.parse(logInfo.getDate_start()))
                                .lte(format.parse(logInfo.getDate_end()));
                    } catch (ParseException e) {
                        e.printStackTrace();
                    }
                    queryBuilder = QueryBuilders.boolQuery().must(queryBuilder_date);
                }else if(null != (logInfo.getCamera_ip()) && null == logInfo.getDate_start()){
                    //带camera_ip参数查询
                    QueryBuilder queryBuilder_ip = QueryBuilders.termQuery("camera_ip",logInfo.getCamera_ip());
                    queryBuilder = QueryBuilders.boolQuery().must(queryBuilder_ip);
                }else {
                    //带camera_ip参数查询
                    //带time范围参数查询
                    /*QueryBuilder  queryBuilder_date = QueryBuilders.rangeQuery("time")
                            .gte("2019-10-15 10:27:16")
                            .lte("2019-10-17 10:27:16");*/
                    /*BoolQueryBuilder startDateQuery = new BoolQueryBuilder()
                               .must(QueryBuilders.rangeQuery("time").gte(logInfo.getDate_start()));
                    BoolQueryBuilder endDateQuery = new BoolQueryBuilder()
                              .must(QueryBuilders.rangeQuery("time").lte(logInfo.getDate_end()));*/
                    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                    QueryBuilder queryBuilder_date = null;
                    try {
                        queryBuilder_date = QueryBuilders.rangeQuery("time")
                                .gte(format.parse(logInfo.getDate_start()))
                                .lte(format.parse(logInfo.getDate_end()));
                    } catch (ParseException e) {
                        e.printStackTrace();
                    }
                    QueryBuilder queryBuilder_ip = QueryBuilders.termQuery("camera_ip",logInfo.getCamera_ip());
                    queryBuilder = QueryBuilders.boolQuery().must(queryBuilder_ip).must(queryBuilder_date);
                }
            }
            return queryBuilder;
        }
        @Override
        public PageWrapper<Logfo> search_info(Logfo logInfo, Pageable pageable) {
            
            try (RestHighLevelClient client = this.getClient();) {
                
                SearchRequest searchRequest = this.getSearchRequest("logstash-order111", "order_log1111");
                
                //searchRequest = this.getSearchRequest_QueryBuilder(searchRequest, queryBuilder);
                //MatchQueryBuilder queryBuilder = QueryBuilders.matchQuery("coutent",coutent)
                //    .fuzziness(Fuzziness.AUTO); //模糊匹配
                QueryBuilder queryBuilder = this.getQueryBuilder(logInfo);
                
                SearchResponse searchResponse = client.search(this.getSearchRequest_QueryBuilder(searchRequest, queryBuilder), RequestOptions.DEFAULT);
                
                SearchHits hits = searchResponse.getHits();
                
                //System.out.println("查询结果有:" + hits.getTotalHits() + "条");
                
                SearchHit[] searchHits = hits.getHits();
                    for (SearchHit hit : searchHits) {
                        String sourceAsString = hit.getSourceAsString(); //取成json串
                        /*JSONObject  jsonObject = JSONObject.fromObject(sourceAsString);//使用json-lib将json字符串转换为json对象
                        Logfo logInfo_ = (Logfo)JSONObject.toBean(jsonObject,Logfo.class);//生成pojo对象(简单java对象)
                        JSONObject jsonObj = new JSONObject(sourceAsString);
                        数据处理。。。。
                    }

                数据处理。。。。
                }catch (IOException e) {
                    e.printStackTrace();
                }finally {
                    System.out.println("Closing elasticSearch client");
                    if(client != null) {
                        this.closeClient();
                    }
                }
            return pageWrapper;
        }

    展开全文
  • 访问ES部分采用官方 RestClient 构建通信。 数据导出方式为Srcoll方式,多线程的话通过slice对ES的数据切割数据。 线程池用 BlockingQueue 用作队列,如果队列使用完,则获取ES数据线程会阻塞等待新的队列。 TODO ...
  • 导入jar包 <!-- https://mvnrepository.com/artifact/org.elasticsearch.client/transport --> <dependency> <groupId>org.elasticsearch.client</groupId...

    导入jar包

            <!-- https://mvnrepository.com/artifact/org.elasticsearch.client/transport -->
            <dependency>
                <groupId>org.elasticsearch.client</groupId>
                <artifactId>transport</artifactId>
            </dependency>

    初始化TransportClient对象

        /**
         *  初始化TransportClient对象, 这里只配置了单个节点,例如100.100.0.1:8090
         */
        private TransportClient initClient() throws UnknownHostException {
            String node = esSetting.getClusterNodes();
            int index = node.indexOf(":");
            String host = node.substring(0, index);
            int port = Integer.valueOf(node.substring(index + 1));
            
            Settings settings = Settings.builder()
                    //elasticsearch节点名称
                    .put("cluster.name", esSetting.getClusterName())
                    .put("client.transport.sniff", true).build();
            
            InetAddress address = InetAddress.getByName(host);
            TransportClient client = new PreBuiltTransportClient(settings);
            client.addTransportAddress(new InetSocketTransportAddress(address, port));
            
            return client;
        }

    查询:

            //查询,根据数据中date字段查询, 这里是最常用的boolQuery示例,可以通过must、must_not、filter等方法设定查询条件
            QueryBuilder queryBuilder = QueryBuilders.boolQuery()
                    .must(QueryBuilders.rangeQuery("date").gte("2018-11-08T00:00:00.000Z")
                            .lt("2018-11-09T00:00:00.000Z"));
            
            //elasticsearch索引及类型,对应数据库中数据库和表
            String index = "index";
            String type = "type";
            SearchResponse response = client.prepareSearch(index)
                    .setTypes(type).addSort("date", SortOrder.ASC)
                    .setSize(1000).setQuery(queryBuilder).execute()
                    .actionGet();
            
            long total = response.getHits().getTotalHits();

    写入:

            try {
                XContentBuilder builder = XContentFactory.jsonBuilder()
                        .startObject().field("date", "2018-11-08T00:00:00.000Z")
                        .field("cost", 10);
                builder.endObject();
                IndexResponse response = client
                        .prepareIndex(index, type)
                        .setSource(builder).get();
            } catch (Exception e) {
                e.printStackTrace();
            }

     

    转载于:https://www.cnblogs.com/wushengwuxi/p/10072255.html

    展开全文
  • Elasticsearch5 JAVA API数据遍历

    千次阅读 2017-07-17 14:39:01
    Elasticsearch5中SearchType.SCAN已经被去掉,使用“_doc”排序可以达到更高效率的数据遍历结果。

            在Elasticsearch老版本中做数据遍历一般使用Scroll-Scan。Scroll是先做一次初始化搜索把所有符合搜索条件的结果缓存起来生成一个快照,然后持续地、批量地从快照里拉取数据直到没有数据剩下。而这时对索引数据的插入、删除、更新都不会影响遍历结果,因此scroll 并不适合用来做实时搜索。Scan是搜索类型,告诉Elasticsearch不用对结果集进行排序,只要分片里还有结果可以返回,就返回一批结果。

            在5.X版本中SearchType.SCAN已经被去掉了。根据官方文档说明,使用“_doc”做排序可以达到更高性能的Scroll查询效果,这样可以遍历所有文档而不需要进行排序。

            JAVA代码示例:

    public class ScrollTest2 {
    	public static void main(String[] args) {
    		JSONObject resultObject = null;
    		Client esClient = ESClientHelper.getInstance().getClient();
    		SearchResponse searchResponse = esClient.prepareSearch("index")
    				.setTypes("type")
    				.setQuery(QueryBuilders.matchAllQuery())
    				.addSort(SortBuilders.fieldSort("_doc"))
    				.setSize(30)
    				// 这个游标维持多长时间
    				.setScroll(TimeValue.timeValueMinutes(8)).execute().actionGet();
    		
    		System.out.println(searchResponse.getScrollId());
    		System.out.println(searchResponse.getHits().getTotalHits());
    		System.out.println(searchResponse.getHits().hits().length);
    		for (SearchHit hit : searchResponse.getHits()) {
    			String json = hit.getSourceAsString();
    			try {
    				resultObject = new JSONObject(json);
    			} catch (JSONException e) {
    				e.printStackTrace();
    			}
    		}
    		System.out.println("------------------------------");
    		// 使用上次的scrollId继续访问
    		ScrollTest2 scroll = new ScrollTest2();
    		do{
    			int num = scroll.scanData(esClient,searchResponse.getScrollId());
    			if(num ==0) break;
    		}while(true);
    		System.out.println("------------------------------END");
    	}
    	
    	private int scanData (Client esClient, String scrollId){
    		SearchResponse searchResponse = esClient.prepareSearchScroll(scrollId)
    				.setScroll(TimeValue.timeValueMinutes(8)).execute().actionGet();
    		System.out.println(searchResponse.getScrollId());
    		System.out.println(searchResponse.getHits().getTotalHits());
    		int num = searchResponse.getHits().hits().length;
    		System.out.println(searchResponse.getHits().hits().length);
    		JSONObject resultObject = null;
    		for (SearchHit hit : searchResponse.getHits()) {
    			String json = hit.getSourceAsString();
    			try {
    				resultObject = new JSONObject(json);
    			} catch (JSONException e) {
    				e.printStackTrace();
    			}
    		}
    		return num;
    	}
    }

            附:搜索类型(SearchType)介绍

            在Elasticsearch5做查询时,可以指定搜索类型:QUERY_THEN_FETCH、DFS_QUERY_THEN_FETCH。

            QUERY_THEN_FETCH是默认的搜索方式,这种搜索方式大概分两个步骤,第一步,先向所有的分片发出请求,各分片只返回排序和排名相关的信息(注意,不包括文档document),然后按照各分片返回的分数进行重新排序和排名,取前size个文档。然后进行第二步,去相关的分片中取document。

            DFS_QUERY_THEN_FETCH类似于QUERY_THEN_FETCH,多了一个初始化散发(initial scatter)步骤。初始化散发其实就是在进行真正的查询之前,先把各个分片的词频率和文档频率收集一下,然后进行词搜索的时候,各分片依据全局的词频率和文档频率进行搜索和排名,目的是提高搜索的精度。



    展开全文
  • 本手册不仅详细描述了如何使用Java作为客户端访问ElasticSearch的代码和方法,同时也描述了在使用ElasticSearch遇到的坑和解决方案,是新手入门不可多得的教材,也是老手借鉴提高的材料。
  • java调用elasticsearch api详解

    万次阅读 多人点赞 2018-06-25 13:16:09
    elasticsearch提供了多种语言的api,这里选择java来调用elasticsearch api,通过创建索引,修改索引,删除索引,查询索引等实例来讲解如何调用。另外讲解四种方式构建elasticsearch创建索引时所需的json对象。一、...

    elasticsearch提供了多种语言的api,这里选择java来调用elasticsearch api,通过创建索引,修改索引,删除索引,查询索引等实例来讲解如何调用。另外讲解四种方式构建elasticsearch创建索引时所需的json document对象。

    一、创建maven项目,引入elasticsearch相关依赖。

    <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>transport</artifactId>
            <version>6.3.0</version>
    </dependency>
    <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>2.10.0</version>
     </dependency>
     <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.10.0</version>
     </dependency>
      <dependency>
            <groupId>com.carrotsearch</groupId>
            <artifactId>hppc</artifactId>
            <version>0.8.1</version>
      </dependency>
      <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.8.10</version>
      </dependency>

    二、编写elasticsearch操作核心实例。


    三、编写增删改查索引接口

    索引


    运行索引方法,打印信息如下:


    然后,查看索引数据:http://10.119.9.149:9200/books/book/_search


    搜索


    控制台结果:


    修改


    运行结果:


    删除


    删除之后,再次查看索引,已经没有任何记录了。


    四、介绍四种方式构建json document对象。

    1、直接通过字符串构建。


    2、通过Map来构建。


    3、通过jackson-databind库来构建。


    4、通过jsonBuilder()来构建。


    运行完四种json方式构建索引之后,再次查看记录。

    {
    	took: 2,
    	timed_out: false,
    	_shards: {
    		total: 5,
    		successful: 5,
    		skipped: 0,
    		failed: 0
    	},
    	hits: {
    		total: 4,
    		max_score: 1,
    		hits: [{
    			_index: "books",
    			_type: "book",
    			_id: "HZQWNWQBRcxIEy9KMksQ",
    			_score: 1,
    			_source: {
    				name: "Think in java",
    				desc: "Think in java",
    				price: 59.9,
    				publish: "2018-04-01"
    			}
    		},
    		{
    			_index: "books",
    			_type: "book",
    			_id: "H5QYNWQBRcxIEy9Kuku2",
    			_score: 1,
    			_source: {
    				name: "java in action",
    				desc: "a book about java program",
    				price: 29.9,
    				publish: "2018-01-02"
    			}
    		},
    		{
    			_index: "books",
    			_type: "book",
    			_id: "IJQZNWQBRcxIEy9KpEte",
    			_score: 1,
    			_source: {
    				name: "redis in action",
    				desc: "redis reference",
    				price: 19.9,
    				publish: "2018-02-01"
    			}
    		},
    		{
    			_index: "books",
    			_type: "book",
    			_id: "HpQXNWQBRcxIEy9KKEvI",
    			_score: 1,
    			_source: {
    				price: 36.9,
    				publish: "2018-05-30",
    				name: "elasticsearch in action",
    				desc: "a book about elasticsearch"
    			}
    		}]
    	}
    }

    最后,附上所有代码:

    package com.xxx.es;
    
    import java.io.IOException;
    import java.net.InetAddress;
    import java.util.HashMap;
    import java.util.Map;
    import java.util.concurrent.ExecutionException;
    
    import org.elasticsearch.action.delete.DeleteResponse;
    import org.elasticsearch.action.index.IndexResponse;
    import org.elasticsearch.action.search.SearchResponse;
    import org.elasticsearch.action.search.SearchType;
    import org.elasticsearch.action.update.UpdateRequest;
    import org.elasticsearch.client.transport.TransportClient;
    import org.elasticsearch.common.settings.Settings;
    import org.elasticsearch.common.transport.TransportAddress;
    import org.elasticsearch.common.xcontent.XContentType;
    
    import static org.elasticsearch.common.xcontent.XContentFactory.*;
    
    import org.elasticsearch.index.query.QueryBuilders;
    import org.elasticsearch.search.SearchHit;
    import org.elasticsearch.search.SearchHits;
    import org.elasticsearch.transport.client.PreBuiltTransportClient;
    
    import com.fasterxml.jackson.core.JsonProcessingException;
    import com.fasterxml.jackson.databind.ObjectMapper;
    import com.xxx.es.entity.Book;
    
    @SuppressWarnings("resource")
    public class App {
    	private static TransportClient client;
    	static{
    		try {
    			
    			Settings settings = Settings.builder().put("cluster.name","hadoop").build();
    			client = new PreBuiltTransportClient(settings)
    			         .addTransportAddress(new TransportAddress(InetAddress.getByName("10.119.9.149"),9300));
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    	
    	public static void index(){
    		Map<String, Object> source = new HashMap<String, Object>();
    		source.put("name", "elasticsearch in action");
    		source.put("desc", "a book about elasticsearch");
    		source.put("price", 36.9);
    		source.put("publish", "2018-05-30");
    		IndexResponse response = client.prepareIndex("books", "book")
    				                 .setSource(source).execute().actionGet();
    		System.out.println("status:"+response.status().getStatus()+" , response id : "+response.getId());
    	}
    	
    	public static void search(){
    		SearchResponse result = client.prepareSearch("books")
    		      .setTypes("book")
    		      .setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
    		      .setQuery(QueryBuilders.matchQuery("name", "action"))
    		      .get();
    		SearchHits hits  = result.getHits();
    		for(SearchHit hit:hits){
    			System.out.println(hit.getSourceAsMap());
    		}
    	}
    	
    	public static void update(){
    		UpdateRequest request = new UpdateRequest("books", "book", "HJQANWQBRcxIEy9KSUtp");
    		
    		try {
    			request.doc(jsonBuilder().startObject().field("desc", "elasticsearch book").endObject());
    			client.update(request).get();
    		} catch (IOException e) {
    			e.printStackTrace();
    		} catch (InterruptedException e) {
    			e.printStackTrace();
    		} catch (ExecutionException e) {
    			e.printStackTrace();
    		}
    	}
    	
    	public static void delete(){
    		DeleteResponse response = client.prepareDelete("books", "book", "HJQANWQBRcxIEy9KSUtp").get();
    		System.out.println(response.status());
    	}
    	
    	public static void jsonByObject(){
    		String json = "{"+
    	           "\"name\":\"Think in java\"," + 
    			   "\"desc\":\"Think in java\","+
    	           "\"price\":59.9,"+
    			   "\"publish\":\"2018-04-01\""+ 
    	    "}";
    		System.out.println(json);
    		IndexResponse response = client.prepareIndex("books", "book")
    				                .setSource(json,XContentType.JSON) 
    			                  	.execute().actionGet();
    		System.out.println("status : "+response.status());
    	}
    	
    	public static void jsonByMap(){
    		Map<String, Object> source = new HashMap<String, Object>();
    		source.put("name", "elasticsearch in action");
    		source.put("desc", "a book about elasticsearch");
    		source.put("price", 36.9);
    		source.put("publish", "2018-05-30");
    		IndexResponse response = client.prepareIndex("books", "book")
    				                 .setSource(source)
    				                 .execute().actionGet();
    		System.out.println("status : "+response.status());
    	}
    	
    	public static void jsonByJackson(){
    		ObjectMapper mapper = new ObjectMapper();
    		Book book = new Book();
    		book.setName("java in action");
    		book.setDesc("a book about java program");
    		book.setPrice(29.9);
    		book.setPublish("2018-01-02");
    		try {
    			byte[] json = mapper.writeValueAsBytes(book);
    			IndexResponse response = client.prepareIndex("books","book")
    					                 .setSource(json,XContentType.JSON)
    					                 .execute().actionGet();
    			System.out.println("status : "+response.status());
    		} catch (JsonProcessingException e) {
    			e.printStackTrace();
    		}	
    	}
    	
    	public static void jsonByJsonBuilder(){
    		//
    		try {
    			IndexResponse response = client.prepareIndex("books", "book")
    					                 .setSource(jsonBuilder()
    					                		   .startObject()
    					                		   .field("name", "redis in action")
    					                		   .field("desc", "redis reference")
    					                		   .field("price", 19.9)
    					                		   .field("publish", "2018-02-01")
    					                		   .endObject())
    					                 .execute().actionGet();
    			System.out.println("status : "+response.status());
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}
    	
        public static void main( String[] args ){
        	//index();
        	//search();
        	//update();
        	//delete();
        	//jsonByObject();
        	//jsonByMap();
        	//jsonByJackson();
        	jsonByJsonBuilder();
        }
    }

    例子中用到的Book实例:

    package com.xxx.es.entity;
    
    public class Book {
    	private String name;
    	private String desc;
    	private double price;
    	private String publish;
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public String getDesc() {
    		return desc;
    	}
    	public void setDesc(String desc) {
    		this.desc = desc;
    	}
    	public double getPrice() {
    		return price;
    	}
    	public void setPrice(double price) {
    		this.price = price;
    	}
    	public String getPublish() {
    		return publish;
    	}
    	public void setPublish(String publish) {
    		this.publish = publish;
    	}
    	@Override
    	public String toString() {
    		return "Book [name=" + name + ", desc=" + desc + ", price=" + price
    				+ ", publish=" + publish + "]";
    	}
    	
    }

    java调用elasticsearch api就介绍到这里。

    展开全文
  • 通过官方文档可以得知,现在存在...官方文档 ElasticSearch使用RestHighLevelClient进行搜索查询、、、(https://www.cnblogs.com/slowcity/p/11727579.html ) 结合springboot https://www.jianshu.com/p/2242a11100c1
  • 2、通过Java程序连接Elasticsearch  需要注意的是,上一章节我们通过浏览器http://192.168.1.140:9200访问可以正常访问,这里需要知晓,9200端口是用于Http协议访问的,如果通过客户端访问需要通过9300端口才...
  • 1、首先使用本地Windows安装的ES进行环境测试 第一步:创建索引 使用postman 发送PUT请求:http://localhost:9200/索引名称 { "settings": { "index": { "number_of_shards": 1, "number_of_replicas": 0 }...
  • elasticsearch压缩包、kibana插件、head-master插件,具体怎么安装配置,小伙伴们可以自行百度网上很多案例 可参考:https://blog.csdn.net/sinat_42338962/article/details/85227902 这里说一下,国内下载一般都...
  • 使用java连接elasticsearch集群,并进行相关操作 2.代码: (1)pom.xml <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <...
  • 使用JAVA操作ElasticSearch

    千次阅读 2019-09-03 23:20:53
    Spring Data 的使命是给各种数据访问提供统一的编程接口,不管是关系型数据库(如MySQL),还是非关系数据库(如Redis),或者类似Elasticsearch这样的索引数据库。从而简化开发人员的代码,提高开发效率。 包含很...
  • 系统对后端也提出了更高的要求,尤其是用户体验上,低延迟、快速响应已经成为检验后端程序是否高效很重要的标准,在后端的数据存储框架中,elasticsearch原本在海量数据的日志分析中有着较多的运用,在提升查询效率...
  • Java操作elasticsearch集群(实例)

    千次阅读 2020-08-24 19:43:08
    Java操作elasticsearch集群1.创建java工程(1)工程的创建(2)配置文件的配置(3)基本结构的创建2.操作实例(1)创建实体类对象(2)创建model层(3)编辑控制层(3)前端编辑index.js的编写index.html的编写(4)...
  • 连接异常 1.异常信息 NoNodeAvailableException[None of the configured nodes are available: [{#transport#-1}{3azEC0ZJQ6KTQ3wJpYCx4Q}{192.168.100.128}{192.168.100.128... at org.elasticsearch.client.tran...
  • 参考官方文档,使用elasticsearch java客户端对es进行操作。 elasticsearch maven依赖 <properties> <es.version>7.6.2</es.version> <gson.version>2.8.6</gson.version> </...
  • java操作elasticsearch实现批量添加主要使用了bulk 代码如下: //bulk批量操作(批量添加) @Test public void test7() throws IOException { //1、指定es集群 cluster.name 是固定的key值,my-application是...
  • 今天,我们就来看看如何利用Java API来操作ES数据,这里不讲理论的东西了,大家可以参看其他资料了解,这里直接给出实例代码。好了不多说了,我们直接上代码: 1、获取client句柄   /** * 获取client句柄 *...
  • java操作elasticsearch实现常用的功能准备工作启动elasticsearch以及kibanaelasticsearch与kibana的简介kibana的简单使用开始构建创建索引index创建映射Mapping插入数据删除修改查询后记 准备工作 首先要求电脑安装...
  • ElasticSearch 使用Java Api访问集群

    千次阅读 2018-09-11 17:00:01
    ElasticSearch 使用Java Api访问集群 1、创建maven工程导入pom依赖 &lt;dependencies&gt; &lt;dependency&gt; &lt;groupId&gt;org.elasticsearch.client&lt;/groupId&gt; &...
  • Elasticsearch7.3在java中的简单连接

    千次阅读 多人点赞 2019-09-01 17:23:52
    上周我们新项目的开发使用的检索引擎确定为Elasticsearch7.3.1,伴随着好奇心我赶快查查这个版本ES的入坑率。 开心,ES7.3.1版本的发布周期还不到10天,设计人员简直是神仙! 心中一顿happy乱喷后,赶快上网搜索...
  • es中存储数据的基本单位是索引,比如说你现在要在es中存储一些订单数据,你就应该在es中创建一个索引,order_idx,所有的订单数据就都写到这个索引里面去,一个索引差不多就是相当于是mysql里的一张表。index -> ...
  • 目录现象原因解决方法 现象 NoNodeAvailableException[None of the configured nodes are available: [{#transport#-1}{VetdwdYaQdGbhNFmnEycXA}{192.168.0.113}{192....jar包spring-data-elasticsearch的版本和安装...
  • ES并非和数据库是相同的,所以不要完全按数据库的方式来看ES) Document->Row 2、倒排索引 参考此文:(一般我们从目录找到相应的文章为正向索引,如果从关键词索引找到对应的文章即倒排索引) ES 索引解析(倒...
  • 项目中有一个功能是数据搜索,要求可以根据用户id、帐户名、邮箱、手机号、昵称、中英文姓名等来精确或模糊查询用户,并且支持按以上查询类型排序,且支持分页;由于当时设计用户表时只有userId为主键,其他几乎没有...
  • 通过Java程序连接Elasticsearch

    千次阅读 2019-04-24 16:51:58
    通过Java程序连接Elasticsearch 9200端口是用于Http协议访问的,如果通过客户端访问需要通过9300端口才可以访问 初始化的两种方式: 1. RestHighLevelClient client = new RestHighLevelClient( RestClient....
  • ElasticSearch集群安装及Java客户端使用

    千次阅读 2019-12-28 00:09:08
    ElasticSearch集群安装及Java客户端使用 1、传统模式安装 1.1 ElasticSearch安装 下载Es安装包 ElasticSearch的官方地址:https://www.elastic.co/guide/en/elasticsearch/reference/master/index.html 1.2 ES图形化...
  • 它以类似于mybatis的方式操作和访问elasticsearch。 环保要求 JDK 要求:JDK 1.7+ Elasticsearch 版本要求:1.X,2.X,5.X,6.X,7.x,+ Spring Booter 1.x,2.x,+ bbos 降 老板 弹性搜索 弹簧靴 全部 1.x 1.x,2.x 全部 2....
  • -- 加入elasticsearch --&gt; &lt;dependency&gt;  &lt;groupId&gt;org.elasticsearch.client&lt;/groupId&gt;  &lt;artifactId&gt;x-pack-transport&lt...
  • 一、在进行java操作elasticsearch之前,请确认好集群的名称及对应的ES节点ip和端口 1、查看ES的集群名称 #进入elasticsearch.yml配置文件/opt/elasticsearch-6.4.3/config vim elasticsearch.yml 2、查询...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 56,147
精华内容 22,458
关键字:

java访问es数据

java 订阅