当前位置: 首页 > news >正文

wordpress怎么开启多站点电商公司的网上设计

wordpress怎么开启多站点,电商公司的网上设计,企业网站怎样做免费,深圳产品设计工资目录 一、定义 二、分类 1、桶(Bucket)聚合: 2、度量(Metric#xff09;聚合: 3、管道聚合#xff08;Pipeline Aggregation#xff09;#xff1a; 4、注意#xff1a; 参与聚合的字段类型必须是: 三、使用DSL实现聚合 聚合所必须的三要素#xff1a; 聚合可配…目录 一、定义 二、分类 1、桶(Bucket)聚合: 2、度量(Metric聚合: 3、管道聚合Pipeline Aggregation 4、注意 参与聚合的字段类型必须是: 三、使用DSL实现聚合 聚合所必须的三要素 聚合可配置属性 1、桶聚合 1自定义排序规则 2限定聚合范围 2、度量聚合 四、使用RestAPI实现聚合 1、对品牌进行聚合 2、对品牌、城市、星级进行聚合 1、在service中添加方法 2、在实现类中编写聚合方法 3、运行测试 3、与前端进行对接 1、增加controller方法 2、更改service方法 3、更改实现类方法 4、运行测试 五、拼音分词器 1、将py插件复制到此目录 2、重启es 3、测试 六、自定义分词器 1、自动补全字段 七、实现自动补全功能 1、删除原索引库 2、新建索引库 3、修改HotelDoc类增加suggestion属性 4、重新做批处理 5、词条做切割处理修改HotelDoc类 6、编写RestAPI 7、实现搜索框的输入补全 1、在controller中新增方法 2、在service中新建方法 3、实现方法 8、测试 八、数据同步 1、定义 2、特点 3、数据同步方案 1同步调用 优点 缺点 2异步通知 优点 缺点 3监听binlog 优点 缺点 一、定义 聚合( aggregations)可以实现对文档数据的统计、分析、运算。 二、分类 1、桶(Bucket)聚合: 用来对文档做分组 TermAggregation:按照文档字段值分组 Date Histogram:按照日期阶梯分组例如一周为一组或者一月为一组 2、度量(Metric聚合: 用以计算一些值比如:最大值、最小值、平均值等 计数COUNT计算指定列中非空值的数量。求和SUM计算指定列中所有数值的总和。平均值AVG计算指定列中所有数值的平均值。最大值MAX查找指定列中的最大值。最小值MIN查找指定列中的最小值。 3、管道聚合Pipeline Aggregation 管道聚合是MongoDB中一种强大的数据聚合工具它可用于通过将多个聚合操作连接在一起来对文档进行处理。通过管道聚合MongoDB用户可以使用多个聚合操作按顺序执行以生成更为复杂、细致和灵活的数据查询和汇总结果。管道聚合可以处理来自单个或多个集合的数据。 一般而言MongoDB 的聚合管道通过 $ 开头的操作符来实现数据聚合操作。以下是一些常见的聚合管道操作 1. $match用于选择满足条件的文档可以通过使用查询条件来过滤文档。 2. $group用于将文档分组通过指定一个或多个字段进行分组对每个分组执行聚合操作最终返回每个组的统计结果。 3. $project用于选择文档的特定字段并输出指定的字段。 4. $sort用于对文档进行排序可以根据指定字段进行升序或降序排列。 5. $limit用于限制输出文档的数量。 6. $skip用于跳过指定数量的文档并返回剩余的文档。 7. $unwind用于展开数组属性将数组属性的每个元素转换为一个单独的文档。 使用管道聚合可以将以上操作有机地组合在一起以实现各种复杂的聚合查询需求。此外MongoDB 还提供了许多其他的聚合管道操作可以根据具体场景自由组合使用方便用户进行数据处理和分析。 4、注意 参与聚合的字段类型必须是: keyword数值日期布尔 三、使用DSL实现聚合 聚合所必须的三要素 聚合名称聚合类型聚合字段 聚合可配置属性 size:指定聚合结果数量order:指定聚合结果排序方式field:指定聚合字段 1、桶聚合 GET /hotel/_search {size: 0, // 设置size为0结果中不包含文档只包含聚合结果aggs: { // 定义聚合brandagg: { //给聚合起个名字terms: { // 聚合的类型按照品牌值聚合所以选择termfield: brand, // 参与聚合的字段size: 20 // 希望获取的聚合结果数量}}} } 运行后数据被按照品牌brand划分了 1自定义排序规则 2限定聚合范围 2、度量聚合 在分类的同时进行了分数的计算并且按照平均分做降序 GET /hotel/_search {size: 0,aggs: {brandagg: {terms: {field: brand, size: 20,order: {scoreAgg.avg: desc}},aggs: {scoreAgg: {stats: {field: score}}}}} } 四、使用RestAPI实现聚合 1、对品牌进行聚合 Testvoid testAggregation() throws IOException {// 准备请求对象SearchRequest request new SearchRequest();// 初始化 SearchSourceBuilderSearchSourceBuilder sourceBuilder new SearchSourceBuilder();// 设置 sizesourceBuilder.size(0);// 聚合sourceBuilder.aggregation(AggregationBuilders.terms(brandAgg).field(brand).size(10));// 将 SearchSourceBuilder 设置到 SearchRequest 中request.source(sourceBuilder);// 发出请求SearchResponse response client.search(request, RequestOptions.DEFAULT);// 解析结果Aggregations aggregations response.getAggregations();// 根据聚合名称获取聚合结果Terms brandTerms aggregations.get(brandAgg);// 获取桶List? extends Terms.Bucket buckets brandTerms.getBuckets();// 遍历for (Terms.Bucket bucket : buckets) {String key bucket.getKeyAsString();System.out.println(key);}} 成功提取出品牌名 2、对品牌、城市、星级进行聚合 1、在service中添加方法 MapString , ListString filters() throws IOException; 2、在实现类中编写聚合方法 Overridepublic MapString, ListString filters() throws IOException {// 准备请求对象SearchRequest request new SearchRequest();// 初始化 SearchSourceBuilderSearchSourceBuilder sourceBuilder new SearchSourceBuilder();// 设置 sizesourceBuilder.size(0);// 聚合buildAggs(sourceBuilder);// 将 SearchSourceBuilder 设置到 SearchRequest 中request.source(sourceBuilder);// 发出请求SearchResponse response client.search(request, RequestOptions.DEFAULT);// 解析结果HashMapString, ListString result new HashMap();Aggregations aggregations response.getAggregations();// 根据名称获得结果ListString brandList getAggByName(aggregations,brandAgg);result.put(品牌,brandList);ListString cityList getAggByName(aggregations,cityAgg);result.put(城市,cityList);ListString starList getAggByName(aggregations,starAgg);result.put(星级,starList);return result;}private ListString getAggByName(Aggregations aggregations,String aggName) {// 根据聚合名称获取聚合结果Terms brandTerms aggregations.get(aggName);// 获取桶List? extends Terms.Bucket buckets brandTerms.getBuckets();// 遍历ListString brandList new ArrayList();for (Terms.Bucket bucket : buckets) {String key bucket.getKeyAsString();brandList.add(key);}return brandList;}private void buildAggs(SearchSourceBuilder sourceBuilder) {sourceBuilder.aggregation(AggregationBuilders.terms(brandAgg).field(brand).size(100));sourceBuilder.aggregation(AggregationBuilders.terms(cityAgg).field(city).size(100));sourceBuilder.aggregation(AggregationBuilders.terms(starAgg).field(starName).size(100));} 3、运行测试 3、与前端进行对接 1、增加controller方法 PostMapping(filters)public MapString , ListString getFilters(RequestBody RequestParams params){return service.filters(params);} 2、更改service方法 MapString , ListString filters(RequestParams params); 3、更改实现类方法 Overridepublic MapString, ListString filters(RequestParams params) {try {// 1.准备RequestSearchRequest request new SearchRequest(hotel);// 2.准备DSL// 2.1.querybuildBasicQuery(params, request);// 2.2.设置sizerequest.source().size(0);// 2.3.聚合buildAggs(request);// 3.发出请求SearchResponse response client.search(request, RequestOptions.DEFAULT);// 4.解析结果MapString, ListString result new HashMap();Aggregations aggregations response.getAggregations();// 4.1.根据品牌名称获取品牌结果ListString brandList getAggByName(aggregations, brandAgg);result.put(brand, brandList);// 4.2.根据品牌名称获取品牌结果ListString cityList getAggByName(aggregations, cityAgg);result.put(city, cityList);// 4.3.根据品牌名称获取品牌结果ListString starList getAggByName(aggregations, starAgg);result.put(starName, starList);return result;} catch (IOException e) {throw new RuntimeException(e);}} 4、运行测试 五、拼音分词器 1、将py插件复制到此目录 /var/lib/docker/volumes/es-plugins/_data/ 2、重启es docker restart es 3、测试 POST /_analyze {text: [西巴仙人爱桃树],analyzer: pinyin } 把每个字都拆成了拼音 六、自定义分词器 elasticsearch中分词器analyzer的组成包含三部分 lcharacter filters在tokenizer之前对文本进行处理。例如删除字符、替换字符 ltokenizer将文本按照一定的规则切割成词条term。例如keyword就是不分词还有ik_smart ltokenizer filter将tokenizer输出的词条做进一步处理。例如大小写转换、同义词处理、拼音处理等 // 自定义拼音分词器 PUT /test {settings: {analysis: {analyzer: { my_analyzer: { tokenizer: ik_max_word,filter: py}},filter: {py: { type: pinyin,keep_full_pinyin: false,keep_joined_full_pinyin: true,keep_original: true,limit_first_letter_length: 16,remove_duplicated_term: true,none_chinese_pinyin_tokenize: false}}}} } 1、自动补全字段 elasticsearch提供了Completion Suggester查询来实现自动补全功能。这个查询会匹配以用户输入内容开头的词条并返回。 为了提高补全查询的效率对于文档中字段的类型有一些约束 参与补全查询的字段必须是completion类型。字段的内容一般是用来补全的多个词条形成的数组。 语法 // 自动补全查询 GET /test/_search {suggest: {title_suggest: {text: s, // 关键字completion: {field: title, // 补全查询的字段skip_duplicates: true, // 跳过重复的size: 10 // 获取前10条结果}}} }七、实现自动补全功能 1、删除原索引库 DELETE /hotel 2、新建索引库 PUT /hotel {settings: {analysis: {analyzer: {text_anlyzer: {tokenizer: ik_max_word,filter: py},completion_analyzer: {tokenizer: keyword,filter: py}},filter: {py: {type: pinyin,keep_full_pinyin: false,keep_joined_full_pinyin: true,keep_original: true,limit_first_letter_length: 16,remove_duplicated_term: true,none_chinese_pinyin_tokenize: false}}}},mappings: {properties: {id:{type: keyword},name:{type: text,analyzer: text_anlyzer,search_analyzer: ik_smart,copy_to: all},address:{type: keyword,index: false},price:{type: integer},score:{type: integer},brand:{type: keyword,copy_to: all},city:{type: keyword},starName:{type: keyword},business:{type: keyword,copy_to: all},location:{type: geo_point},pic:{type: keyword,index: false},all:{type: text,analyzer: text_anlyzer,search_analyzer: ik_smart},suggestion:{type: completion,analyzer: completion_analyzer}}} } 3、修改HotelDoc类增加suggestion属性 private ListString suggestion; this.suggestion Arrays.asList(this.brand,this.business); 4、重新做批处理 Testvoid testBulkRequest() throws IOException{ // 批量查询酒店数据ListHotel hotelList iHotelService.list(); // 创建RequestBulkRequest request new BulkRequest(); // 准备参数for (Hotel hotel : hotelList){ // 转换为文档类型HotelDocHotelDoc hotelDoc new HotelDoc(hotel); // 创建新增文档的Request对象request.add(new IndexRequest(hotel).id(hotelDoc.getId().toString()).source(JSON.toJSONString(hotelDoc),XContentType.JSON));} // 发送请求client.bulk(request,RequestOptions.DEFAULT);} 5、词条做切割处理修改HotelDoc类 // 有多个值做切割String[] arr this.business.split(/);this.suggestion new ArrayList();this.suggestion.add(this.brand);Collections.addAll(this.suggestion,arr);}else {this.suggestion Arrays.asList(this.brand,this.business);} 6、编写RestAPI Testvoid testSuggest() throws IOException {SearchRequest request new SearchRequest(hotel);request.source().suggest(new SuggestBuilder().addSuggestion(suggestions,SuggestBuilders.completionSuggestion(suggestion).prefix(h).skipDuplicates(true).size(10)));SearchResponse response client.search(request, RequestOptions.DEFAULT);Suggest suggest response.getSuggest();CompletionSuggestion suggestions suggest.getSuggestion(suggestions);ListCompletionSuggestion.Entry.Option options suggestions.getOptions();for (CompletionSuggestion.Entry.Option option : options) {String string option.getText().toString();System.out.println(string);}} 7、实现搜索框的输入补全 1、在controller中新增方法 PostMapping(suggestion)public ListString getSuggestion(RequestParam(key) String prefix){return service.getSuggestions(prefix);} 2、在service中新建方法 ListString getSuggestions(String prefix); 3、实现方法 Overridepublic ListString getSuggestions(String prefix) {try { // 准备RequestSearchRequest request new SearchRequest(hotel);request.source().suggest(new SuggestBuilder().addSuggestion(suggestions,SuggestBuilders.completionSuggestion(suggestion).prefix(prefix).skipDuplicates(true).size(10))); // 发送请求SearchResponse response client.search(request, RequestOptions.DEFAULT); // 得到响应Suggest suggest response.getSuggest();CompletionSuggestion suggestions suggest.getSuggestion(suggestions);ListCompletionSuggestion.Entry.Option options suggestions.getOptions();ArrayListString list new ArrayList(options.size()); // 遍历for (CompletionSuggestion.Entry.Option option : options) {String string option.getText().toString();list.add(string);}return list;} catch (IOException e) {throw new RuntimeException(e);}} 8、测试 八、数据同步 1、定义 数据同步是指将一个数据源的数据与另一个数据存储系统中的数据保持更新的过程。数据同步确保不同数据存储系统中的数据保持一致从而支持企业在不同数据存储系统中的数据共享和协作。 2、特点 数据同步是一个周期性的过程。数据同步通常需要从源系统读取数据然后将数据传递到目标系统。这个过程可能需要经过多个步骤如数据转换、数据清洗、数据映射等。一般情况下数据同步是一个周期性的过程定期将目标系统中的数据更新到最新状态。 数据同步的目标是确保数据的一致性。在数据同步的过程中目标是确保源系统中的数据与目标系统中的数据保持一致。这样可以保证不同应用之间使用相同的数据。 数据同步需要考虑数据的安全性和完整性。在数据同步的过程中数据的安全性和完整性必须得到保障。例如在数据传输过程中需要使用加密技术来保护敏感数据的机密性。 数据同步通常需要使用专业工具或平台。数据同步的过程需要使用专业工具或平台来完成。这些工具或平台通常提供了丰富的功能和技术如数据清洗、数据转换、数据映射等以确保数据同步的质量和效率。 数据同步可以提高企业效率和降低成本。通过数据同步企业可以在不同部门和团队之间共享数据从而更好地理解业务趋势和市场需求进一步提高效率和降低成本。 3、数据同步方案 1同步调用 优点 实现简单 缺点 粗暴业务耦合度高 2异步通知 优点 低耦合实现难度一般依赖 缺点 mq的可靠性 3监听binlog 优点 完全解除服务间耦合 缺点 开启binlog增加数据库负担、实现复杂度高 数据同步案例实现方案
http://www.sadfv.cn/news/68013/

相关文章:

  • 网站logo也叫做网站的房地产新闻app哪个好
  • 消防有哪些网站合适做沙田镇做网站
  • 什么创网站北京网络法庭
  • 秦皇岛抚宁区建设局网站wordpress添加原创说明
  • 网站建设空标记牛商网做网站要多少钱
  • html 网站添加悬浮二维码免费公司网址怎么注册
  • 旅游村庄网站建设方案做网站别人输账号代码
  • 网站添加搜索活动策划网站有哪些
  • 晋城网站seo做优惠券网站要多少钱
  • 建瓯市建设局网站专业网站开发开发
  • lamp网站开发黄金组合适合大型网站的流量套餐
  • muse cc 做网站Linux主机设置网站首页
  • 微信企业微网站设计师经常用的网站
  • 孝感网站开发优搏快互联网道路运输便民政务服务系统
  • 爱站网seo查询三明做网站
  • iis建设个人网站网站建立吸引人的策划活动
  • 怎么做投资网站不违法河南工程项目信息
  • 想招代理去什么网站开发网站步骤是
  • 阿里云服务器做网站安全吗公司logo设计图片素材
  • 百度搜索网站打开错误wordpress网站收录插件
  • 做网站页面大小多大如果快速做网站
  • 展会网站建设成都中企动力怎么样
  • 关键词查询网址小红书seo排名规则
  • 内网建设网站中国建筑集团2022招聘
  • 个人网站做导购要什么经营许可网站更新中
  • 网站建设及目标编程教育机构
  • 建设网站机构公司网站服务器租赁
  • 商城网站具体需求猪八戒网logo设计
  • 做政协网站的目的是什么威海网络营销
  • 建设网站五个步骤广州做贷款有什么网站