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

在线做爰 视频网站施工企业管理会计实施方案

在线做爰 视频网站,施工企业管理会计实施方案,阿里云网站注册,在国外视频网站做中国美食目录 一、数据聚合1.1 聚合的种类1.2 DSL实现聚合1.2.1 Bucket聚合语法1.2.2 聚合结果排序1.2.3 限定聚合范围1.2.4 Metric聚合语法 1.3 RestAPI实现聚合 二、自动补全2.1 拼音分词器2.2 自定义分词器2.3 自动补全查询2.4 RestAPI实现自动补全 三、数据同步3.1 思路分析3.1.1 同… 目录 一、数据聚合1.1 聚合的种类1.2 DSL实现聚合1.2.1 Bucket聚合语法1.2.2 聚合结果排序1.2.3 限定聚合范围1.2.4 Metric聚合语法 1.3 RestAPI实现聚合 二、自动补全2.1 拼音分词器2.2 自定义分词器2.3 自动补全查询2.4 RestAPI实现自动补全 三、数据同步3.1 思路分析3.1.1 同步调用3.1.2 异步通知3.1.3 监听binlog3.1.4 如何选择 3.2 实现数据同步3.2.1 思路 3.2.2 声明交换机、队列 四、集群4.1 集群脑裂问题4.1.1 集群职责划分4.1.2 脑裂问题4.1.3 总结 4.2 集群分布式存储4.2.1 分片存储原理 4.3 集群分布式查询4.3 集群故障转移 一、数据聚合 聚合aggregations可以让我们极其方便的实现对数据的统计、分析、运算。例如 什么品牌的手机最受欢迎这些手机的平均价格、最高价格、最低价格这些手机每月的销售情况如何 实现这些统计功能的比数据库的sql要方便的多而且查询速度非常快可以实现近实时搜索效果。 1.1 聚合的种类 聚合常见的有三类 桶Bucket聚合用来对文档做分组 TermAggregation按照文档字段值分组例如按照品牌值分组、按照国家分组Date Histogram按照日期阶梯分组例如一周为一组或者一月为一组 度量Metric聚合用以计算一些值比如最大值、最小值、平均值等 Avg求平均值Max求最大值Min求最小值Stats同时求max、min、avg、sum等 管道pipeline聚合其它聚合的结果为基础做聚合 注意参加聚合的字段必须是keyword、日期、数值、布尔类型 1.2 DSL实现聚合 1.2.1 Bucket聚合语法 需求统计所有数据中的酒店品牌有几种其实就是按照品牌对数据分组 语法 GET /hotel/_search {size: 0, // 设置size为0结果中不包含文档只包含聚合结果aggs: { // 定义聚合brandAgg: { //给聚合起个名字terms: { // 聚合的类型按照品牌值聚合所以选择termfield: brand, // 参与聚合的字段size: 20 // 希望获取的聚合结果数量}}} }结果 1.2.2 聚合结果排序 默认情况下Bucket聚合会统计Bucket内的文档数量记为count并且按照count降序排序。 我们可以指定order属性自定义聚合的排序方式 GET /hotel/_search {size: 0, aggs: {brandAgg: {terms: {field: brand,order: {_count: asc // 按照_count升序排列},size: 20}}} }1.2.3 限定聚合范围 默认情况下Bucket聚合是对索引库的所有文档做聚合但真实场景下用户会输入搜索条件因此聚合必须是对搜索结果聚合。那么聚合必须添加限定条件。 GET /hotel/_search {query: {range: {price: {lte: 200 // 只对200元以下的文档聚合}}}, size: 0, aggs: {brandAgg: {terms: {field: brand,size: 20}}} }1.2.4 Metric聚合语法 需求获取每个品牌的用户评分的min、max、avg等值。 语法 GET /hotel/_search {size: 0, aggs: {brandAgg: { terms: { field: brand, size: 20},aggs: { // 是brands聚合的子聚合也就是分组后对每组分别计算score_stats: { // 聚合名称stats: { // 聚合类型这里stats可以计算min、max、avg等field: score // 聚合字段这里是score}}}}} }还可以给聚合结果做个排序例如按照每个桶的酒店平均分做排序 1.3 RestAPI实现聚合 聚合条件的语法 JSON逐层解析: 二、自动补全 当用户在搜索框输入字符时我们应该提示出与该字符有关的搜索项如图 2.1 拼音分词器 要实现根据字母做补全就必须对文档按照拼音分词。在GitHub上恰好有elasticsearch的拼音分词插件。地址https://github.com/medcl/elasticsearch-analysis-pinyin 安装方式与IK分词器一样分三步 ①解压②上传到虚拟机中elasticsearch的plugin目录③重启elasticsearch④测试测试 POST /_analyze {text: 如家酒店还不错,analyzer: pinyin }结果 2.2 自定义分词器 默认的拼音分词器会将每个汉字单独分为拼音而我们希望的是每个词条形成一组拼音需要对拼音分词器做个性化定制形成自定义分词器。 elasticsearch中分词器analyzer的组成包含三部分 character filters在tokenizer之前对文本进行处理。例如删除字符、替换字符tokenizer将文本按照一定的规则切割成词条term。例如keyword就是不分词还有ik_smarttokenizer filter将tokenizer输出的词条做进一步处理。例如大小写转换、同义词处理、拼音处理等 文档分词时会依次由这三部分来处理文档 声明自定义分词器的语法如下 PUT /test {settings: {analysis: {analyzer: { // 自定义分词器my_analyzer: { // 分词器名称tokenizer: ik_max_word,filter: py}},filter: { // 自定义tokenizer filterpy: { // 过滤器名称type: pinyin, // 过滤器类型这里是pinyinkeep_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: {name: {type: text,analyzer: my_analyzer,search_analyzer: ik_smart}}} }测试 为了避免搜索到同音字搜索时不要使用拼音分词器 2.3 自动补全查询 elasticsearch提供了Completion Suggester查询来实现自动补全功能。这个查询会匹配以用户输入内容开头的词条并返回。为了提高补全查询的效率对于文档中字段的类型有一些约束 参与补全查询的字段必须是completion类型。字段的内容一般是用来补全的多个词条形成的数组。 比如一个这样的索引库 // 创建索引库 PUT test {mappings: {properties: {title:{type: completion}}} }然后插入下面的数据 // 示例数据 POST test/_doc {title: [Sony, WH-1000XM3] } POST test/_doc {title: [SK-II, PITERA] } POST test/_doc {title: [Nintendo, switch] }查询的DSL语句如下 // 自动补全查询 GET /test/_search {suggest: {title_suggest: {text: s, // 关键字completion: {field: title, // 补全查询的字段skip_duplicates: true, // 跳过重复的size: 10 // 获取前10条结果}}} }2.4 RestAPI实现自动补全 解析结果 三、数据同步 elasticsearch中的酒店数据来自于mysql数据库因此mysql数据发生改变时elasticsearch也必须跟着改变这个就是elasticsearch与mysql之间的数据同步。 3.1 思路分析 常见的数据同步方案有三种 同步调用异步通知监听binlog 3.1.1 同步调用 基本步骤如下 hotel-demo对外提供接口用来修改elasticsearch中的数据酒店管理服务在完成数据库操作后直接调用hotel-demo提供的接口 3.1.2 异步通知 流程如下 hotel-admin对mysql数据库数据完成增、删、改后发送MQ消息hotel-demo监听MQ接收到消息后完成elasticsearch数据修改 3.1.3 监听binlog 流程如下 给mysql开启binlog功能mysql完成增、删、改操作都会记录在binlog中hotel-demo基于canal监听binlog变化实时更新elasticsearch中的内容 3.1.4 如何选择 方式一同步调用 优点实现简单粗暴缺点业务耦合度高 方式二异步通知 优点低耦合实现难度一般缺点依赖mq的可靠性 方式三监听binlog 优点完全解除服务间耦合缺点开启binlog增加数据库负担、实现复杂度高 3.2 实现数据同步 3.2.1 思路 步骤 声明exchange、queue、RoutingKey在hotel-admin中的增、删、改业务中完成消息发送在hotel-demo中完成消息监听并更新elasticsearch中数据启动并测试数据同步功能 3.2.2 声明交换机、队列 MQ结构 四、集群 4.1 集群脑裂问题 4.1.1 集群职责划分 elasticsearch中集群节点有不同的职责划分 默认情况下集群中的任何一个节点都同时具备上述四种角色。 但是真实的集群一定要将集群职责分离 master节点对CPU要求高但是内存要求第data节点对CPU和内存要求都高coordinating节点对网络带宽、CPU要求高 职责分离可以让我们根据不同节点的需求分配不同的硬件去部署。而且避免业务之间的互相干扰。 一个典型的es集群职责划分如图 4.1.2 脑裂问题 脑裂是因为集群中的节点失联导致的。 例如一个集群中主节点与其它节点失联 此时node2和node3认为node1宕机就会重新选主 当node3当选后集群继续对外提供服务node2和node3自成集群node1自成集群两个集群数据不同步出现数据差异。 当网络恢复后因为集群中有两个master节点集群状态的不一致出现脑裂的情况 解决脑裂的方案是要求选票超过 ( eligible节点数量 1 / 2 才能当选为主因此eligible节点数量最好是奇数。对应配置项是discovery.zen.minimum_master_nodes在es7.0以后已经成为默认配置因此一般不会发生脑裂问题 例如3个节点形成的集群选票必须超过 3 1 / 2 也就是2票。node3得到node2和node3的选票当选为主。node1只有自己1票没有当选。集群中依然只有1个主节点没有出现脑裂。 4.1.3 总结 master eligible节点的作用是什么 参与集群选主主节点可以管理集群状态、管理分片信息、处理创建和删除索引库的请求 data节点的作用是什么 数据的CRUD coordinator节点的作用是什么 路由请求到其它节点合并查询到的结果返回给用户 4.2 集群分布式存储 当新增文档时应该保存到不同分片保证数据均衡那么coordinating node如何确定数据该存储到哪个分片呢 4.2.1 分片存储原理 elasticsearch会通过hash算法来计算文档应该存储到哪个分片 说明 _routing默认是文档的id算法与分片数量有关因此索引库一旦创建分片数量不能修改 新增文档的流程如下 解读 1新增一个id1的文档2对id做hash运算假如得到的是2则应该存储到shard-23shard-2的主分片在node3节点将数据路由到node34保存文档5同步给shard-2的副本replica-2在node2节点6返回结果给coordinating-node节点 4.3 集群分布式查询 elasticsearch的查询分成两个阶段 scatter phase分散阶段coordinating node会把请求分发到每一个分片gather phase聚集阶段coordinating node汇总data node的搜索结果并处理为最终结果集返回给用户 4.3 集群故障转移 集群的master节点会监控集群中的节点状态如果发现有节点宕机会立即将宕机节点的分片数据迁移到其它节点确保数据安全这个叫做故障转移。 1例如一个集群结构如图 现在node1是主节点其它两个节点是从节点。 2突然node1发生了故障 宕机后的第一件事需要重新选主例如选中了node2 node2成为主节点后会检测集群监控状态发现shard-1、shard-0没有副本节点。因此需要将node1上的数据迁移到node2、node3
http://www.pierceye.com/news/100298/

相关文章:

  • 西安网站快速优化重庆明建网络科技有限公司干啥的
  • 广州市天河区门户网站软件制作公司
  • 做网站前期创建文件夹博罗高端网站建设价格
  • 襄阳网站建设价格淄博网站推广价格
  • 网站推广的软件六安网站制作哪里有
  • 大型门户网站模板wordpress有哪些小工具
  • 有flash的网站新闻资讯app制作公司
  • 网站和平台有什么区别黄页88怎么发信息质量高
  • 阿里建站价格小户型室内装修设计公司网站
  • 建设银行网站安全性分析网络推广服务平台
  • 大型购物网站建设福建微网站建设公司
  • 做网站软件j程序员找工作网站
  • 济南网站建设系统画册设计公司宣传册
  • 上海网站设计方案家纺网站建设
  • 衡水精品网站建设游戏广告推广平台
  • 响应式企业网站建设营销战略
  • wordpress离线浏览搜索引擎优化包括
  • 门户网站建设需要多少呼伦贝尔市住房和城乡建设局网站
  • 静海集团网站建设住房城乡建设网站
  • 个人备案挂企业网站网站开发公司照片
  • 网站建设课程体会国内最新新闻简短
  • 网站开发大概价格最常用的网页制作软件
  • 商务网站模块设计时前台基础设施建设免费网站建设空间
  • 青海省公路工程建设总公司网站饮料公司网站模板
  • 建设部网站刘赵云网页版邮箱
  • 免费扑克网站企业网站怎么搜索优化
  • 做网站导航的厦门网站建设制作多少钱
  • 怎样免费注册网站域名鹤城建设集团网站
  • 3合1网站建设价格网站建设论坛快速建站
  • 怎样做钓鱼网站上海网站关键词排名优化报价