elasticsearch搜索 多条件排序 20C

// 方式一
// List sortList = new ArrayList<>();
// sortList.add(new Sort.Order(Sort.Direction.ASC,"gradeNumber"));
// sortList.add(new Sort.Order(Sort.Direction.ASC,"studentSex"));
// sortList.add(new Sort.Order(Sort.Direction.ASC,"studentName"));
// Sort sort =new Sort(sortList);
PageRequest pageable = PageRequest.of(requestVO.getPageNumber(),requestVO.getPageSize());
// Page resultPage = fitnessTestRecordEsRepository.search(qt.getQueryBuilder(), pageable);

    //*******************************************
    //ES 搜索时 多条件排序 方式二
    SortBuilder sortBuilder1 = SortBuilders.fieldSort("gradeNumber").order(SortOrder.ASC);
    SortBuilder sortBuilder2 = SortBuilders.fieldSort("studentSex").order(SortOrder.ASC);
    SortBuilder sortBuilder3 = SortBuilders.fieldSort("studentName").order(SortOrder.ASC);

    NativeSearchQueryBuilder builder = new NativeSearchQueryBuilder().withQuery(qt.getQueryBuilder())
            .withPageable(pageable).withSort(sortBuilder1).withSort(sortBuilder2).withSort(sortBuilder3);
    SearchQuery searchQuery = builder.build();
    Page<EsFitnessTestRecordDO> resultPage = fitnessTestRecordEsRepository.search(searchQuery);

// //*******************************************


两种方式都失败,请问应该怎么写

1个回答

BIGE_BIGGER
BIGE_BIGGER 我想知道代码怎么写,你发的链接没什么帮助
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
GoLang,elasticsearch多个查询参数

<div class="post-text" itemprop="text"> <p>I have a project in golang which fetches logs from elastiearch where our servers send logs. I have a problem with multiple query. <strong>I want to query by two fields, where both must be found and filter result to get all these logs between two timestamps.</strong> In the code below attaching <code>deploymentName</code> object into <code>Filter()</code>causes for no results at all. </p> <pre class="lang-golang prettyprint-override"><code>import ("github.com/olivere/elastic") func main() { client, err := elastic.NewClient(elastic.SetURL(*elasticUrl)) //query by time timeQ := elastic.NewRangeQuery("@timestamp").From(from).To(to) //query by key named "component" componentQ := elastic.NewMatchQuery("component", *component) //query by key named "deploymentName", sam type as component deploymentQ := elastic.NewMatchQuery("deploymentName", deploymentName) //query object used for actual search later generalQ := elastic.NewBoolQuery().Should(). Filter(timeQ).Filter(componentQ).Filter(deploymentQ) searchResult, err := client.Search(). Index("some-index"). From(from).Size(*chunk). Query(generalQ). Sort("@timestamp", true). Do(context.Background()) } </code></pre> <p>While if generalQuery is written like this, it works.</p> <pre><code> //query object used for actual search later generalQ := elastic.NewBoolQuery().Should(). Filter(timeQ).Filter(componentQ) </code></pre> </div>

ElasticSearch 两次查询得分不一样

ElasticSearch搜索,两台机器分别布了主节点和副节点,同样的搜索条件,得到的得分不一样,导致排序发生改变,请问是什么原因,如何解决?![图片说明](https://img-ask.csdn.net/upload/201612/16/1481871446_479676.png) 下次查询: ![图片说明](https://img-ask.csdn.net/upload/201612/16/1481871462_768901.png) 这两次查询结果会随机出现。

按定义的类型在弹性搜索中排序

<div class="post-text" itemprop="text"> <p>I have this request to elastic service.</p> <p>Url callback is:</p> <pre><code>GET /es-main/Project,ProjectStage,Task,TaskComment,TicketComment,Client,User,Attachment/_search </code></pre> <p>How to add Sort improvement requirements that the results were in sequence as they are embedded in the URL + score? Now alphabetically by type. Example first is type Project, second is ProjectStage, etc...</p> <p>Thanks all for answers...</p> <pre><code>GET /es-main/Project,ProjectStage,Task,TaskComment,TicketComment,Client,User,Attachment/_search Array ( [query] =&gt; Array ( [query_string] =&gt; Array ( [query] =&gt; *a* [analyzer] =&gt; hunspell_cs [fields] =&gt; Array ( [0] =&gt; name [1] =&gt; description [2] =&gt; tags.name [3] =&gt; text [4] =&gt; email [5] =&gt; filename ) ) ) [from] =&gt; 0 [size] =&gt; 10 [sort] =&gt; Array ( [_type] =&gt; ASC [_score] =&gt; DESC ) [aggs] =&gt; Array ( [CountByType] =&gt; Array ( [terms] =&gt; Array ( [field] =&gt; _type ) ) ) ) </code></pre> </div>

如何按时间范围过滤Go中的Elasticsearch结果?

<div class="post-text" itemprop="text"> <p>I'm using olivere's v.5 elasticsearch library - <a href="https://godoc.org/github.com/olivere/elastic" rel="nofollow noreferrer">https://godoc.org/github.com/olivere/elastic</a></p> <p>Trying to do something similar to this post which uses the v.2 library - <a href="https://stackoverflow.com/questions/32674666/how-to-search-in-elasticsearch-with-go-filtering-results-by-time-frames">How to search in elasticsearch with Go filtering results by time frames</a></p> <p>But 'NewRangeFilter' and 'NewFilteredQuery' are not available in v.5. There is a 'DateRange' API in v.5 (<a href="https://godoc.org/github.com/olivere/elastic#Aggregations.DateRange" rel="nofollow noreferrer">https://godoc.org/github.com/olivere/elastic#Aggregations.DateRange</a>) that I can call from an Aggregation, but it takes in a string, so I don't know what I'm supposed to pass in. </p> <p>This is what I've tried so far to build an aggregation. After that, I'm not sure what to pass into the DateRange function. I have an index called 'tmpindex' and type called 'user' and each document has a 'timestamp' property which is an integer.</p> <pre><code>timeline := elasticClient.NewTermsAggregation().Field("timestamp").Size(10).OrderByCountDesc() searchResult, err := elasticClient.Search(). Index("tmpindex"). // search in index "tmpindex" Aggregation("timeline", timeline). From(0).Size(10). // take documents 0-9 Pretty(true). // pretty print request and response JSON Do(context.Background()) // execute if err != nil { return err } </code></pre> </div>

如何使用php在elasticsearch中添加更多像此查询

<div class="post-text" itemprop="text"> <p>I am trying to include Elastic search into my application. In a scenario a user can select field type and enter the searchable value.</p> <p>Let say, Search using First Name and Value is <code>'ABC'</code>. I have tried this using bool query,but How i can use <code>'more_like_this'</code> query method?. This what I have done so far.</p> <pre><code>$searchParams['index'] = 'articles'; $searchParams['type'] = 'article'; $searchParams['body']['query']['match']['body'] = 'ABC'; $queryResponse = $es-&gt;search($searchParams); </code></pre> <p>but if i put more_like_this into the query field,data cannot be selected. any help please? Thanks in advance</p> <p><strong>This is the edited code</strong></p> <pre><code>$searchParams['index'] = 'articles'; $searchParams['type'] = 'article'; $searchParams['body']['query']['more_like_this']['fields'] = array('body','title'); $searchParams['body']['query']['more_like_this']['like_text'] = $q; $searchParams['body']['query']['more_like_this']['min_term_freq'] = 1; $searchParams['body']['query']['more_like_this']['percent_terms_to_match'] = 1; $searchParams['body']['query']['more_like_this']['min_doc_freq'] = 1; </code></pre> <p>Can you tell me what this lines for?</p> <pre><code>$searchParams['body']['query']['more_like_this']['min_term_freq'] = 1; $searchParams['body']['query']['more_like_this']['percent_terms_to_match'] = 1; $searchParams['body']['query']['more_like_this']['min_doc_freq'] = 1; </code></pre> </div>

Elasticsearch分词与查询问题

使用ik分词器,存有两条记录 1、name:"花牛苹果300g" 2、name:"花牛" 然后做fuzzy查询 QueryBuilder qb = QueryBuilders.fuzzyQuery( "name", "花牛" ); SearchResponse sResponse = Tool.CLIENT.prepareSearch(indexName).setTypes(typeName).setQuery(qb).get(); logger.info(sResponse); 结果一条记录都没有 把关键词"花牛"换成"花苹果","牛苹果"都能搜到第一条记录"花牛苹果300g"(这个比较容易理解) 不理解的是为什么用"花牛"做关键词,什么都搜不到 使用"http://ip:port/indexName/_analyze?analyzer=ik&pretty=true&text=花牛苹果"查看分词结果如下 { "tokens" : [ { "token" : "花", "start_offset" : 0, "end_offset" : 1, "type" : "CN_CHAR", "position" : 0 }, { "token" : "牛", "start_offset" : 1, "end_offset" : 2, "type" : "CN_WORD", "position" : 1 }, { "token" : "苹果", "start_offset" : 2, "end_offset" : 4, "type" : "CN_WORD", "position" : 2 } ] } 难道因为"花牛"不是一个词的原因,但可以理解成两个但字词啊,用fuzzy为什么就搜不到,求大神解释,或者指一个解决方案

spring-data-elasticsearch 一对多

现在有三个实体类 关系是一个产品有多个属性 一个属性有多个属性值 如下: 实体类EsProduct: ``` @Document(indexName = "product", type = "productInfo",shards = 2,replicas = 1,refreshInterval = "-1") public class EsProduct implements Serializable { private static final long serialVersionUID = 2372551074091780419L; @Id private Long id; @Field(analyzer = "ik_max_word",type = FieldType.Text) private String productSn; private Long brandId; @Field(analyzer = "ik_max_word",type = FieldType.Text) private String brandName; private Long productCategoryId; @Field(analyzer = "ik_max_word",type = FieldType.Text) private String productName; private Long sale; @Field(analyzer = "ik_max_word",type = FieldType.Text) private String subTitle; private BigDecimal price; @Field(analyzer = "ik_max_word",type = FieldType.Text) private String keywords; private List<EsProductAttribute> attributeList; private EsProductCategory productCategorie; ``` 实体类EsProductAttribute: ``` public class EsProductAttribute implements Serializable { private static final long serialVersionUID = 4965902919813623705L; @Id private Long id; @Field(analyzer = "ik_max_word",type = FieldType.Text) private String paProductAttributeName;//属性名称 private List<EsProductAttributeValue> attributeValues; ``` 实体类EsProductAttributeValue: ``` public class EsProductAttributeValue implements Serializable { private static final long serialVersionUID = 6713756365860464751L; private Long id; @Field(analyzer = "ik_max_word",type = FieldType.Text) private String pavProductAttributeValue; ``` 之前的搜索是这样的,可以成功搜索 控制层代码: ``` @ApiOperation(value = "简单搜索:根据关键字,品牌名称或者产品名称,产品编号,副标题搜索(字符串:Text类型最大拆分)") @RequestMapping(value = "/search/keyword", method = RequestMethod.GET) @ResponseBody public CommonResult<CommonPage<EsProduct>> searchKeyword(@RequestParam(required = false) String keyword, @RequestParam(required = false, defaultValue = "0") Integer pageNum, @RequestParam(required = false, defaultValue = "5") Integer pageSize) { Page<EsProduct> esProductPage = esProductService.searchKeyword(keyword, pageNum, pageSize); return CommonResult.success(CommonPage.restPage(esProductPage)); } ``` 业务实现层代码: ``` @Autowired private EsProductRepository productRepository; @Override public Page<EsProduct> searchKeyword(String keyword, Integer pageNum, Integer pageSize) { Pageable pageable = PageRequest.of(pageNum, pageSize); return productRepository.findByKeywordsOrProductNameOrBrandNameOrProductSnOrSubTitle(keyword,keyword,keyword,keyword,keyword,pageable); } ``` EsProductRepository接口 ``` public interface EsProductRepository extends ElasticsearchRepository<EsProduct, Long> { /** * 根据关键字,产品名称,品牌名称,产品编号搜索 * @param keywords * @param productName * @param brandName * @param page * @return */ Page<EsProduct> findByKeywordsOrProductNameOrBrandNameOrProductSnOrSubTitle(String keywords,String productName,String brandName,String productSn,String subTitle,Pageable page); } ``` 都可以成功搜索 但是在进行属性和属性值搜索的时候告诉我说在EsProduct中找不到paProductAttributeName,我一想有道理,然后改变策略 单独写了一个接口测试 控制层 ``` @ApiOperation(value = "属性和属性值搜索、筛选、排序") @ApiImplicitParam(name = "sort", value = "排序字段:0->按相关度;1->按销量;2->价格从低到高;3->价格从高到低", defaultValue = "0", allowableValues = "0,1,2,3", paramType = "query", dataType = "integer") @RequestMapping(value = "/search", method = RequestMethod.GET) @ResponseBody public CommonResult<CommonPage<EsProduct>> search(@RequestParam(required = false) String keyword, @RequestParam(required = false, defaultValue = "0") Integer pageNum, @RequestParam(required = false, defaultValue = "5") Integer pageSize, @RequestParam(required = false, defaultValue = "0") Integer sort) { Page<EsProduct> esProductPage = esProductService.search(keyword,pageNum, pageSize, sort); return CommonResult.success(CommonPage.restPage(esProductPage)); } ``` 业务实现层: ``` @Override public Page<EsProduct> search(String keyword,Integer pageNum, Integer pageSize,Integer sort) { Pageable pageable = PageRequest.of(pageNum, pageSize); //将连接条件和聚合函数等组合 NativeSearchQueryBuilder nativeSearchQueryBuilder = new NativeSearchQueryBuilder(); //分页 nativeSearchQueryBuilder.withPageable(pageable); //搜索 if (StringUtils.isEmpty(keyword)) { nativeSearchQueryBuilder.withQuery(QueryBuilders.matchAllQuery()); } else { List<FunctionScoreQueryBuilder.FilterFunctionBuilder> filterFunctionBuilders = new ArrayList<>(); //QueryBuilders:简单的静态工厂”导入静态”使用。主要作用是查询条件(关系),如区间\精确\多值等条件 //属性名称 filterFunctionBuilders.add(new FunctionScoreQueryBuilder.FilterFunctionBuilder(QueryBuilders.matchQuery("paProductAttributeName", keyword), ScoreFunctionBuilders.weightFactorFunction(2))); //属性值 filterFunctionBuilders.add(new FunctionScoreQueryBuilder.FilterFunctionBuilder(QueryBuilders.matchQuery("value", keyword), ScoreFunctionBuilders.weightFactorFunction(2))); //产品名称 // filterFunctionBuilders.add(new FunctionScoreQueryBuilder.FilterFunctionBuilder(QueryBuilders.matchQuery("productName",keyword), // ScoreFunctionBuilders.weightFactorFunction(2))); // //关键字 // filterFunctionBuilders.add(new FunctionScoreQueryBuilder.FilterFunctionBuilder(QueryBuilders.matchQuery("keywords", keyword), // ScoreFunctionBuilders.weightFactorFunction(2))); // //产品编号 // filterFunctionBuilders.add(new FunctionScoreQueryBuilder.FilterFunctionBuilder(QueryBuilders.matchQuery("productSn", keyword), // ScoreFunctionBuilders.weightFactorFunction(2))); FunctionScoreQueryBuilder.FilterFunctionBuilder[] builders = new FunctionScoreQueryBuilder.FilterFunctionBuilder[filterFunctionBuilders.size()]; filterFunctionBuilders.toArray(builders); FunctionScoreQueryBuilder functionScoreQueryBuilder = QueryBuilders.functionScoreQuery(builders) .scoreMode(FunctionScoreQuery.ScoreMode.SUM) .setMinScore(2); nativeSearchQueryBuilder.withQuery(functionScoreQueryBuilder); } // //排序 // if(sort==1){ // //按销量从高到低 // nativeSearchQueryBuilder.withSort(SortBuilders.fieldSort("sale").order(SortOrder.DESC)); // }else if(sort==2){ // //按价格从低到高 // nativeSearchQueryBuilder.withSort(SortBuilders.fieldSort("price").order(SortOrder.ASC)); // }else if(sort==3){ // //按价格从高到低 // nativeSearchQueryBuilder.withSort(SortBuilders.fieldSort("price").order(SortOrder.DESC)); // }else{ // //按相关度 // nativeSearchQueryBuilder.withSort(SortBuilders.scoreSort().order(SortOrder.DESC)); // } nativeSearchQueryBuilder.withSort(SortBuilders.scoreSort().order(SortOrder.DESC)); NativeSearchQuery searchQuery = nativeSearchQueryBuilder.build(); LOGGER.info("DSL:{}", searchQuery.getQuery().toString()); return productRepository.search(searchQuery); } ``` es中的数据是: ``` { "code": 200, "message": "操作成功", "data": { "pageNum": 0, "pageSize": 5, "totalPage": 4, "total": 17, "list": [ { "id": 40, "productSn": "C146179 ", "brandId": null, "brandName": "PSA(信昌电陶)", "productCategoryId": 54, "productName": "贴片电容/220nF(224)±10%250V编带", "sale": 1000, "subTitle": "贴片电容", "price": null, "keywords": "贴片电容/220nF(224) ±10% 250V 编带 ", "attributeList": [ { "id": 49, "paProductAttributeName": "容值", "attributeValues": [ { "id": 240, "pavProductAttributeValue": "0.1pf" }, { "id": 241, "pavProductAttributeValue": "0.2pf" }, { "id": 242, "pavProductAttributeValue": "0.25pf" }, { "id": 243, "pavProductAttributeValue": "0.3pf" }, { "id": 244, "pavProductAttributeValue": "0.4pf" } ] }, { "id": 51, "paProductAttributeName": "额定电压", "attributeValues": [ { "id": 290, "pavProductAttributeValue": "4v" }, { "id": 292, "pavProductAttributeValue": "10v" }, { "id": 296, "pavProductAttributeValue": "30v" } ] } ], "productCategorie": { "id": 54, "productCategoryName": "贴片电容" } }, { "id": 41, "productSn": "C394163 ", "brandId": null, "brandName": "PSA(信昌电陶)", "productCategoryId": 54, "productName": "贴片电容/10nF(103) ±10% 1KV", "sale": 1000, "subTitle": "贴片电容", "price": null, "keywords": "贴片电容/10nF(103) ±10% 1KV ", "attributeList": [ { "id": 49, "paProductAttributeName": "容值", "attributeValues": [ { "id": 245, "pavProductAttributeValue": "0.5pf" }, { "id": 246, "pavProductAttributeValue": "0.6pf" }, { "id": 247, "pavProductAttributeValue": "0.68pf" } ] }, { "id": 50, "paProductAttributeName": "精度", "attributeValues": [ { "id": 272, "pavProductAttributeValue": "+0.05pf" }, { "id": 273, "pavProductAttributeValue": "+0.1pf" }, { "id": 274, "pavProductAttributeValue": "+0.25pf" } ] }, { "id": 51, "paProductAttributeName": "额定电压", "attributeValues": [ { "id": 291, "pavProductAttributeValue": "6.3v" }, { "id": 293, "pavProductAttributeValue": "16v" }, { "id": 297, "pavProductAttributeValue": "35v" } ] } ], "productCategorie": { "id": 54, "productCategoryName": "贴片电容" } }, { "id": 44, "productSn": "C342641 ", "brandId": null, "brandName": "TDK", "productCategoryId": 54, "productName": "贴片电容/47nF(473) ±5% 100V 编带", "sale": 1000, "subTitle": "贴片电容", "price": null, "keywords": "贴片电容/47nF(473) ±5% 100V 编带 ", "attributeList": [ { "id": 49, "paProductAttributeName": "容值", "attributeValues": [ { "id": 254, "pavProductAttributeValue": "1.3pf" }, { "id": 255, "pavProductAttributeValue": "1.4pf" }, { "id": 256, "pavProductAttributeValue": "2pf" }, { "id": 257, "pavProductAttributeValue": "2.1pf" } ] }, { "id": 50, "paProductAttributeName": "精度", "attributeValues": [ { "id": 278, "pavProductAttributeValue": "+5%" } ] } ], "productCategorie": { "id": 54, "productCategoryName": "贴片电容" } }, { "id": 48, "productSn": "C11366 ", "brandId": null, "brandName": " AVX", "productCategoryId": 55, "productName": "钽电容/22uF(226) ±10% 10V", "sale": 1000, "subTitle": "钽电容", "price": null, "keywords": "钽电容/22uF(226) ±10% 10V ", "attributeList": [ { "id": 49, "paProductAttributeName": "容值", "attributeValues": [ { "id": 269, "pavProductAttributeValue": "0.1pf" }, { "id": 270, "pavProductAttributeValue": "0.2pf" } ] }, { "id": 50, "paProductAttributeName": "精度", "attributeValues": [ { "id": 271, "pavProductAttributeValue": "+0.02pf" }, { "id": 284, "pavProductAttributeValue": "-20%,+80%" } ] } ], "productCategorie": { "id": 55, "productCategoryName": "钽电容" } }, { "id": 52, "productSn": "C391913 ", "brandId": null, "brandName": "SAMYOUNG(韩国三莹)", "productCategoryId": 56, "productName": "贴片电解电容/10uF ±20% 50V", "sale": 1000, "subTitle": "贴片电解电容", "price": null, "keywords": "贴片电解电容/10uF ±20% 50V ", "attributeList": [], "productCategorie": { "id": 56, "productCategoryName": "贴片电解电容" } } ] } } ``` 然后搜索了半天一点反应也没有,也没有头绪,求助大神指点

java 操作es多索引查询的时候,可不可以首先指定一个索引的查询条件,然后在进行多索引查询。

java 操作es多索引查询的时候,可不可以首先指定一个索引的查询条件,然后在进行多索引查询。

oracle根据查询条件、时间降序排序查询出最新的一条数据并更新

update TBL_SQZL set HYJG = 1 where ID = ( select ID from ( select ID from TBL_SQZL where JYTGM is not null and XM = '郭玉珍' and ZJHM = '310101194307254025' and ZJLX = '01' order by CRT_TIMESTAMP desc) where ROWNUM = 1 ); select准确查出一条数据,整体执行的时候就一直转圈圈……表数据有两万四千多条,是需要优化还是怎么滴?

淘宝搜索功能,用户在输入框输入关键字后,系统自动根据关键字进入搜索页面后会再次生成筛选条件

页面如何根据搜索条件 再次显示相关物品的筛选条件 供用户进行选择 是如何实现的 求原理 最近自己在做一个网上商城项目 需要效果和淘宝,京东等差不多。

ES地址位置映射,如果字段不存在,或者映射对应字段类型问题

ES地理位置映射,导入数据的时候如果对字段不存在,会报错400怎么解决? ![图片说明](https://img-ask.csdn.net/upload/201807/10/1531210759_194190.png) ES地理位置映射,Double数组的形式存储位置,映射发生错误 大家又遇到这种问题的吗? ![图片说明](https://img-ask.csdn.net/upload/201807/10/1531210773_727426.png)

java 动态依据不特定字段进行分组和统计

写了动态指定单个字段的分组,但是 MethodHandle handle = lookup.findGetter(this.getT().getClass(), fieldName, String.class); 会报错找不到字段,我确定字段没写错 ``` public class CollectionsUtils<T> { private T t; public T getT() { return t; } public void setT(T t) { this.t = t; } public CollectionsUtils(T t) { this.t = t; } //多字段排序 public <T> Map<List<String>, List<T>> DynamicGroupListByFiled(List<T> data, String[] groupByFieldNames) { final MethodHandles.Lookup lookup = MethodHandles.lookup(); List<MethodHandle> handles = Arrays.stream(groupByFieldNames) .map(field -> { try { return lookup.findGetter(this.getT().getClass(), field, String.class); } catch (Exception e) { throw new RuntimeException(e); } }).collect(Collectors.toList()); return data.stream().collect(Collectors.groupingBy( d -> handles.stream() .map(handle -> { try { return (String) handle.invokeExact(d); } catch (Throwable e) { throw new RuntimeException(e); } }).collect(Collectors.toList()) )); } //按某字段分组后统计数量 public Map<String, Long> DynamicGroupListByFiled(List<T> data, String fieldName) { final MethodHandles.Lookup lookup = MethodHandles.lookup(); try { MethodHandle handle = lookup.findGetter(this.getT().getClass(), fieldName, String.class); return data.stream().collect(Collectors.groupingBy( d -> { try { return (String) handle.invokeExact(d); } catch (Throwable e) { throw new RuntimeException(e); } } ,Collectors.counting())); } catch (Throwable e) { throw new RuntimeException(); } } //算不定字段平均值 public Double getDynamicFieldAverage(List<T> data, String fieldName) { final MethodHandles.Lookup lookup = MethodHandles.lookup(); try { MethodHandle handle = lookup.findGetter(this.getT().getClass(), fieldName, String.class); return data.stream().mapToDouble(d -> { try { return (Double) handle.invokeExact(d); } catch (Throwable e) { throw new RuntimeException(e); } } ).average().getAsDouble(); } catch (Exception e) { throw new RuntimeException(e); } } } @Test public void testCollectionUtils() { List<EsFitnessTestRecordDO> list = new ArrayList<>(); list.add(new EsFitnessTestRecordDO().setBmiRating("优秀").setBmiScore(90D)); list.add(new EsFitnessTestRecordDO().setBmiRating("优秀").setBmiScore(92D)); list.add(new EsFitnessTestRecordDO().setBmiRating("优秀").setBmiScore(94D)); list.add(new EsFitnessTestRecordDO().setBmiRating("良好").setBmiScore(80D)); list.add(new EsFitnessTestRecordDO().setBmiRating("良好").setBmiScore(82D)); list.add(new EsFitnessTestRecordDO().setBmiRating("良好").setBmiScore(84D)); list.add(new EsFitnessTestRecordDO().setBmiRating("合格").setBmiScore(70D)); list.add(new EsFitnessTestRecordDO().setBmiRating("合格").setBmiScore(76D)); list.add(new EsFitnessTestRecordDO().setBmiRating("不合格").setBmiScore(50D)); list.add(new EsFitnessTestRecordDO().setBmiRating("不合格").setBmiScore(40D)); list.add(new EsFitnessTestRecordDO().setBmiRating("不合格").setBmiScore(30D)); CollectionsUtils<EsFitnessTestRecordDO> ct = new CollectionsUtils(EsFitnessTestRecordDO.class); //统计bmiRating字段 优秀、良好、合格、不合格的各自人数,bmiRating是传递的参数 Map<String, Long> map = ct.DynamicGroupListByFiled(list,"bmiRating"); //计算bmiScore字段的平均值,bmiScore是传递的动态参数 double bmiAverage = ct.getDynamicFieldAverage(list,"bmiScore"); } ``` ![类的字段](https://img-ask.csdn.net/upload/201810/31/1540949963_127506.png) 调试bug图 ![BUG](https://img-ask.csdn.net/upload/201810/31/1540947738_269708.png)

软件测试入门、SQL、性能测试、测试管理工具

软件测试2小时入门,让您快速了解软件测试基本知识,有系统的了解; SQL一小时,让您快速理解和掌握SQL基本语法 jmeter性能测试 ,让您快速了解主流来源性能测试工具jmeter 测试管理工具-禅道,让您快速学会禅道的使用,学会测试项目、用例、缺陷的管理、

计算机组成原理实验教程

西北工业大学计算机组成原理实验课唐都仪器实验帮助,同实验指导书。分为运算器,存储器,控制器,模型计算机,输入输出系统5个章节

Java 最常见的 200+ 面试题:面试必备

这份面试清单是从我 2015 年做了 TeamLeader 之后开始收集的,一方面是给公司招聘用,另一方面是想用它来挖掘在 Java 技术栈中,还有那些知识点是我不知道的,我想找到这些技术盲点,然后修复它,以此来提高自己的技术水平。虽然我是从 2009 年就开始参加编程工作了,但我依旧觉得自己现在要学的东西很多,并且学习这些知识,让我很有成就感和满足感,那所以何乐而不为呢? 说回面试的事,这份面试...

winfrom中嵌套html,跟html的交互

winfrom中嵌套html,跟html的交互,源码就在里面一看就懂,很简单

玩转Python-Python3基础入门

总课时80+,提供源码和相关资料 本课程从Python零基础到纯Python项目实战。内容详细,案例丰富,覆盖了Python知识的方方面面,学完后不仅对Python知识有个系统化的了解,让你从Python小白变编程大牛! 课程包含: 1.python安装 2.变量、数据类型和运算符 3.选择结构 4.循环结构 5.函数和模块 6.文件读写 7.了解面向对象 8.异常处理

程序员的兼职技能课

获取讲师答疑方式: 在付费视频第一节(触摸命令_ALL)片头有二维码及加群流程介绍 限时福利 原价99元,今日仅需39元!购课添加小助手(微信号:itxy41)按提示还可领取价值800元的编程大礼包! 讲师介绍: 苏奕嘉&nbsp;前阿里UC项目工程师 脚本开发平台官方认证满级(六级)开发者。 我将如何教会你通过【定制脚本】赚到你人生的第一桶金? 零基础程序定制脚本开发课程,是完全针对零脚本开发经验的小白而设计,课程内容共分为3大阶段: ①前期将带你掌握Q开发语言和界面交互开发能力; ②中期通过实战来制作有具体需求的定制脚本; ③后期将解锁脚本的更高阶玩法,打通任督二脉; ④应用定制脚本合法赚取额外收入的完整经验分享,带你通过程序定制脚本开发这项副业,赚取到你的第一桶金!

HoloLens2开发入门教程

本课程为HoloLens2开发入门教程,讲解部署开发环境,安装VS2019,Unity版本,Windows SDK,创建Unity项目,讲解如何使用MRTK,编辑器模拟手势交互,打包VS工程并编译部署应用到HoloLens上等。

基于VHDL的16位ALU简易设计

基于VHDL的16位ALU简易设计,可完成基本的加减、带进位加减、或、与等运算。

MFC一站式终极全套课程包

该套餐共包含从C小白到C++到MFC的全部课程,整套学下来绝对成为一名C++大牛!!!

利用Verilog实现数字秒表(基本逻辑设计分频器练习)

设置复位开关。当按下复位开关时,秒表清零并做好计时准备。在任何情况下只要按下复位开关,秒表都要无条件地进行复位操作,即使是在计时过程中也要无条件地进行清零操作。 设置启/停开关。当按下启/停开关后,将

董付国老师Python全栈学习优惠套餐

购买套餐的朋友可以关注微信公众号“Python小屋”,上传付款截图,然后领取董老师任意图书1本。

Python可以这样学(第一季:Python内功修炼)

董付国系列教材《Python程序设计基础》、《Python程序设计(第2版)》、《Python可以这样学》配套视频,讲解Python 3.5.x和3.6.x语法、内置对象用法、选择与循环以及函数设计与使用、lambda表达式用法、字符串与正则表达式应用、面向对象编程、文本文件与二进制文件操作、目录操作与系统运维、异常处理结构。

计算机操作系统 第三版.pdf

计算机操作系统 第三版 本书全面介绍了计算机系统中的一个重要软件——操作系统(OS),本书是第三版,对2001年出版的修订版的各章内容均作了较多的修改,基本上能反映当前操作系统发展的现状,但章节名称基

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

Vue.js 2.0之全家桶系列视频课程

基于新的Vue.js 2.3版本, 目前新全的Vue.js教学视频,让你少走弯路,直达技术前沿! 1. 包含Vue.js全家桶(vue.js、vue-router、axios、vuex、vue-cli、webpack、ElementUI等) 2. 采用笔记+代码案例的形式讲解,通俗易懂

微信公众平台开发入门

本套课程的设计完全是为初学者量身打造,课程内容由浅入深,课程讲解通俗易懂,代码实现简洁清晰。通过本课程的学习,学员能够入门微信公众平台开发,能够胜任企业级的订阅号、服务号、企业号的应用开发工作。 通过本课程的学习,学员能够对微信公众平台有一个清晰的、系统性的认识。例如,公众号是什么,它有什么特点,它能做什么,怎么开发公众号。 其次,通过本课程的学习,学员能够掌握微信公众平台开发的方法、技术和应用实现。例如,开发者文档怎么看,开发环境怎么搭建,基本的消息交互如何实现,常用的方法技巧有哪些,真实应用怎么开发。

150讲轻松搞定Python网络爬虫

【为什么学爬虫?】 &nbsp; &nbsp; &nbsp; &nbsp;1、爬虫入手容易,但是深入较难,如何写出高效率的爬虫,如何写出灵活性高可扩展的爬虫都是一项技术活。另外在爬虫过程中,经常容易遇到被反爬虫,比如字体反爬、IP识别、验证码等,如何层层攻克难点拿到想要的数据,这门课程,你都能学到! &nbsp; &nbsp; &nbsp; &nbsp;2、如果是作为一个其他行业的开发者,比如app开发,web开发,学习爬虫能让你加强对技术的认知,能够开发出更加安全的软件和网站 【课程设计】 一个完整的爬虫程序,无论大小,总体来说可以分成三个步骤,分别是: 网络请求:模拟浏览器的行为从网上抓取数据。 数据解析:将请求下来的数据进行过滤,提取我们想要的数据。 数据存储:将提取到的数据存储到硬盘或者内存中。比如用mysql数据库或者redis等。 那么本课程也是按照这几个步骤循序渐进的进行讲解,带领学生完整的掌握每个步骤的技术。另外,因为爬虫的多样性,在爬取的过程中可能会发生被反爬、效率低下等。因此我们又增加了两个章节用来提高爬虫程序的灵活性,分别是: 爬虫进阶:包括IP代理,多线程爬虫,图形验证码识别、JS加密解密、动态网页爬虫、字体反爬识别等。 Scrapy和分布式爬虫:Scrapy框架、Scrapy-redis组件、分布式爬虫等。 通过爬虫进阶的知识点我们能应付大量的反爬网站,而Scrapy框架作为一个专业的爬虫框架,使用他可以快速提高我们编写爬虫程序的效率和速度。另外如果一台机器不能满足你的需求,我们可以用分布式爬虫让多台机器帮助你快速爬取数据。 &nbsp; 从基础爬虫到商业化应用爬虫,本套课程满足您的所有需求! 【课程服务】 专属付费社群+每周三讨论会+1v1答疑

SEIR课程设计源码与相关城市数据.rar

SEIR结合学报与之前博客结合所做的一些改进,选择其中三个城市进行拟合仿真SEIR结合学报与之前博客结合所做的一些改进,选择其中三个城市进行拟合仿真SEIR结合学报与之前博客结合所做的一些改进,选择其

Python数据挖掘简易入门

&nbsp; &nbsp; &nbsp; &nbsp; 本课程为Python数据挖掘方向的入门课程,课程主要以真实数据为基础,详细介绍数据挖掘入门的流程和使用Python实现pandas与numpy在数据挖掘方向的运用,并深入学习如何运用scikit-learn调用常用的数据挖掘算法解决数据挖掘问题,为进一步深入学习数据挖掘打下扎实的基础。

2019 AI开发者大会

2019 AI开发者大会(AI ProCon 2019)是由中国IT社区CSDN主办的AI技术与产业年度盛会。多年经验淬炼,如今蓄势待发:2019年9月6-7日,大会将有近百位中美顶尖AI专家、知名企业代表以及千余名AI开发者齐聚北京,进行技术解读和产业论证。我们不空谈口号,只谈技术,诚挚邀请AI业内人士一起共铸人工智能新篇章!

Java面试题大全(2020版)

发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~ 本套Java面试题大全,全的不能再全,哈哈~ 一、Java 基础 1. JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境。 JRE:Java Runtime Environ...

定量遥感中文版 梁顺林著 范闻捷译

这是梁顺林的定量遥感的中文版,由范闻捷等翻译的,是电子版PDF,解决了大家看英文费时费事的问题,希望大家下载看看,一定会有帮助的

GIS程序设计教程 基于ArcGIS Engine的C#开发实例

张丰,杜震洪,刘仁义编著.GIS程序设计教程 基于ArcGIS Engine的C#开发实例.浙江大学出版社,2012.05

人工智能-计算机视觉实战之路(必备算法+深度学习+项目实战)

系列课程主要分为3大阶段:(1)首先掌握计算机视觉必备算法原理,结合Opencv进行学习与练手,通过实际视项目进行案例应用展示。(2)进军当下最火的深度学习进行视觉任务实战,掌握深度学习中必备算法原理与网络模型架构。(3)结合经典深度学习框架与实战项目进行实战,基于真实数据集展开业务分析与建模实战。整体风格通俗易懂,项目驱动学习与就业面试。 建议同学们按照下列顺序来进行学习:1.Python入门视频课程 2.Opencv计算机视觉实战(Python版) 3.深度学习框架-PyTorch实战/人工智能框架实战精讲:Keras项目 4.Python-深度学习-物体检测实战 5.后续实战课程按照自己喜好选择就可以

三个项目玩转深度学习(附1G源码)

从事大数据与人工智能开发与实践约十年,钱老师亲自见证了大数据行业的发展与人工智能的从冷到热。事实证明,计算机技术的发展,算力突破,海量数据,机器人技术等,开启了第四次工业革命的序章。深度学习图像分类一直是人工智能的经典任务,是智慧零售、安防、无人驾驶等机器视觉应用领域的核心技术之一,掌握图像分类技术是机器视觉学习的重中之重。针对现有线上学习的特点与实际需求,我们开发了人工智能案例实战系列课程。打造:以项目案例实践为驱动的课程学习方式,覆盖了智能零售,智慧交通等常见领域,通过基础学习、项目案例实践、社群答疑,三维立体的方式,打造最好的学习效果。

微信小程序开发实战之番茄时钟开发

微信小程序番茄时钟视频教程,本课程将带着各位学员开发一个小程序初级实战类项目,针对只看过官方文档而又无从下手的开发者来说,可以作为一个较好的练手项目,对于有小程序开发经验的开发者而言,可以更好加深对小程序各类组件和API 的理解,为更深层次高难度的项目做铺垫。

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

去除异常值matlab程序

数据预处理中去除异常值的程序,matlab写成

用verilog HDL语言编写的秒表

在秒表设计中,分模块书写。用在七段数码管上显示。输入频率是1KHZ.可以显示百分秒,秒,分。如要显示小时,只需修改leds里的代码和主模块代码。改程序以通过硬件电路验证。完全正确。

[透视java——反编译、修补和逆向工程技术]源代码

源代码。

用QUARTUS设计模可变计数器器

用QUARTUS设计摸20|60的模可变计数器,文本设计

随机迷宫路径算法

基于C++写成的路径寻找,能够自动生成随机迷宫,并通过A*算法得到最短路径到达出口,可以直观地看到迷宫的构成以及路径的生成

深度学习原理+项目实战+算法详解+主流框架(套餐)

深度学习系列课程从深度学习基础知识点开始讲解一步步进入神经网络的世界再到卷积和递归神经网络,详解各大经典网络架构。实战部分选择当下最火爆深度学习框架PyTorch与Tensorflow/Keras,全程实战演示框架核心使用与建模方法。项目实战部分选择计算机视觉与自然语言处理领域经典项目,从零开始详解算法原理,debug模式逐行代码解读。适合准备就业和转行的同学们加入学习! 建议按照下列课程顺序来进行学习 (1)掌握深度学习必备经典网络架构 (2)深度框架实战方法 (3)计算机视觉与自然语言处理项目实战。(按照课程排列顺序即可)

Spring Boot -01- 快速入门篇(图文教程)

Spring Boot -01- 快速入门篇 今天开始不断整理 Spring Boot 2.0 版本学习笔记,大家可以在博客看到我的笔记,然后大家想看视频课程也可以到【慕课网】手机 app,去找【Spring Boot 2.0 深度实践】的课程,令人开心的是,课程完全免费! 什么是 Spring Boot? Spring Boot 是由 Pivotal 团队提供的全新框架。Spring Boot...

MySQL数据库从入门到实战应用

限时福利1:购课进答疑群专享柳峰(刘运强)老师答疑服务 限时福利2:购课后添加学习助手(微信号: itxy41),按消息提示即可领取编程大礼包! 为什么说每一个程序员都应该学习MySQL? 根据《2019-2020年中国开发者调查报告》显示,超83%的开发者都在使用MySQL数据库。 使用量大同时,掌握MySQL早已是运维、DBA的必备技能,甚至部分IT开发岗位也要求对数据库使用和原理有深入的了解和掌握。 学习编程,你可能会犹豫选择 C++ 还是 Java;入门数据科学,你可能会纠结于选择 Python 还是 R;但无论如何, MySQL 都是 IT 从业人员不可或缺的技能! 【课程设计】 在本课程中,刘运强老师会结合自己十多年来对MySQL的心得体会,通过课程给你分享一条高效的MySQL入门捷径,让学员少走弯路,彻底搞懂MySQL。 本课程包含3大模块:&nbsp; 一、基础篇: 主要以最新的MySQL8.0安装为例帮助学员解决安装与配置MySQL的问题,并对MySQL8.0的新特性做一定介绍,为后续的课程展开做好环境部署。 二、SQL语言篇: 本篇主要讲解SQL语言的四大部分数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL,学会熟练对库表进行增删改查等必备技能。 三、MySQL进阶篇: 本篇可以帮助学员更加高效的管理线上的MySQL数据库;具备MySQL的日常运维能力,语句调优、备份恢复等思路。 &nbsp;

MATLAB环境下ISI信道仿真及自适应均衡器设计

本文的程序时在matlab底下,在ISI信道条件下关于自适应均衡器的仿真

Android音视频开发全套

Android平台音视频开发全套,涉及:FFmpeg软解码解码、Mediacodec硬解码编码、Openssl音频播放、OpenGL ES视频渲染、RTMP推流等核心重要知识点。

相关热词 c# 不能序列化继承类 c# char* 调用 c# 开发dll模板 c#添加控件到工具箱 c#控制台组合数 编程计算猴子吃桃问题c# c# wpf 背景透明 随机抽取号码软件c# c# 开发环境 c# 属性和字段
立即提问