MinDoc

ES系列四、ES6.3常用api之文档类api

落爺英雄遲暮 提交于 2020-12-27 01:00:22
1.Index API: 创建并建立索引 PUT twitter/tweet/ 1 { " user " : " kimchy " , " post_date " : " 2009-11-15T14:12:12 " , " message " : " trying out Elasticsearch " } 官方文档参考: Index API 。 2.Get API: 获取文档 curl -XGET 'http://localhost:9200/twitter/tweet/1' 官方文档参考: Get API 。 3.DELETE API: 删除文档 $ curl -XDELETE 'http://localhost:9200/twitter/tweet/1' 官方文档参考: Delete API 。 4.UPDATE API: 更新文档 PUT test/type1/1{ "counter" : 1, "tags" : ["red"]} 官方文档参考: Update API 。 5.Multi Get API: 一次批量获取文档 PUT ' localhost:9200/_mget { " docs " : [ { " _index " : " test " , " _type " : " type " , " _id " : " 1 " }, { " _index " : "

推荐一套个人文档管理系统。

好久不见. 提交于 2020-08-17 17:58:18
文章简介 一直想开发或者找一个开源的软件,功能就类似看云一样,用来搭建属于一套自己的文档管理系统,将自己平常的东西集中化管理,形成一个手册。于是找到了mindoc这样一款不错的文档管理系统软件。本文大致介绍一下如何安装,基本的功能介绍。 功能介绍 主要功能包括文档管理、导出、团队管理、文章管理等功能。特别适合团队或者个人做一个知识库文档管理系统。 搭建环境 mindoc支持Linux和Windows系统环境,我这里使用的是Linux系统。系统的配置信息如下: Centos7.4; MySQL5.7; MySQL属于独立搭建的,如果不会的可以参考一下个人之前分享的一篇文章 Linux搭建MySQL环境 ,其他的东西也没了,属于一个纯净的Linux系统。 搭建步骤 拉取源码 源码地址 解压并配置环境 tar -zxvf mindoc_linux_amd64.zip 找到config目录下面的app.config文件,如果不存在该文件,应该有一个app.config.example文件,将该文件复制一分,命名为app.conf即可. cp app.conf.example app.conf #支持MySQL和sqlite3两种数据库,如果是sqlite3 则 db_database 标识数据库的物理目录 db_adapter="${MINDOC_DB_ADAPTER||mysql}"

Elasticsearch 趋势科技实战分享笔记

≯℡__Kan透↙ 提交于 2020-08-11 12:11:06
文章转载自: https://mp.weixin.qq.com/s?__biz=MzI2NDY1MTA3OQ==&mid=2247484113&idx=1&sn=6c40d7f5d68840af1ea9a1fd38249dbd&chksm=eaa82af9dddfa3efead2861f681b3869397573740c01238c6286900ef40f6649cdaf2cc1e941&scene=21#wechat_redirect 1、Elasticsearch 索引的设计 1.1 单一索引还是基于时间的索引? 单一索引的问题: 1)不能更新Mapping。 比如:主分片数不可以修改(除非reindex)。 2)无法灵活、快速地扩展。 3)更适合固定、小型数据集。 基于时间的索引面临的问题: 1)如何确定间隔? 数据量 变更频率 默认尝试每周为单位分割——建议 2)如何实施? 索引模板 1.2 定义索引注意事项 举例: { "facet_internet_access_minute":{ "template":"ce-index-access-v1-*", "order":0, "settings":{ "number_of_shards":5 }, "aliases":{ "{index}-query":{ } }, "mappings":{ "es_doc":{

Elasticsearch聚合 之 Terms

房东的猫 提交于 2020-08-11 06:08:40
本篇着重讲解的terms聚合,它是按照某个字段中的值来分类: 比如性别有男、女,就会创建两个桶,分别存放男女的信息。默认会搜集doc_count的信息,即记录有多少男生,有多少女生,然后返回给客户端,这样就完成了一个terms得统计。 Terms聚合 { " aggs" : { " genders" : { " terms" : { " field" : "gender" } } } } 得到的结果如下: { ... "aggregations" : { "genders" : { "doc_count_error_upper_bound": 0, "sum_other_doc_count": 0, "buckets" : [ { "key" : "male", "doc_count" : 10 }, { "key" : "female", "doc_count" : 10 }, ] } } } 数据的不确定性 使用terms聚合,结果可能带有一定的偏差与错误性。 举个例子: 我们想要获取name字段中出现频率最高的前5个。 此时,客户端向ES发送聚合请求,主节点接收到请求后,会向每个独立的分片发送该请求。 分片独立的计算自己分片上的前5个name,然后返回。当所有的分片结果都返回后,在主节点进行结果的合并,再求出频率最高的前5个,返回给客户端。 这样就会造成一定的误差

全局搜索解决方案——es多索引搜索,聚合统计

不打扰是莪最后的温柔 提交于 2020-07-27 13:52:47
最近用es实现了一个全局搜索(输入搜索项,搜索统计应用各业务数据量),例如一个教育app,全局搜索结果为:教师:n个、课程:n个、学校:n个、文章:n个;(防个伪: 为何不可!~为大牛?) 直接上dsl: url:http://localhost:9200/report.report.report,memo.memorandum.memorandum_info/_search/ 索引名之间用逗号','分隔; { "from": 0, "size": 0, "query": { "bool": { "must": [ { "multi_match": { "query": "能效", "fields": [ "category^1.0", "title^1.0", "name" ], "type": "best_fields", "operator": "OR", "minimum_should_match": "80%" } } ], "must_not": [ { "term": { "status": { "value": 2, "boost": 1 } } } ], "should": [ { "term": { "creater": { "value": "200514134508420509", "boost": 1 } } }, { "term": { "org_id"

国产开源之光,Gitee 2月份最有价值开源项目出炉

依然范特西╮ 提交于 2020-03-25 12:06:17
3 月,跳不动了?>>> GVP ( Gitee Most Valuable Project ) – Gitee 最有价值开源项目计划 是 Gitee 综合评定出的优秀开源项目的展示平台。GVP 项目的评选既要满足客观的硬指标,还需要通过评委会主观的投票认可。经过 2 年多时间,目前 Gitee 的 GVP 项目已有两百多个。 下面是 2020 年 2 月最新入选 GVP 的项目列表(按照入选时间先后顺序排列): ngr NgRouter 是基于 OpenResty 开发的 API 网关,继承了 Nginx 的高并发、低延迟的强大性能的同时,也提供诸如认证鉴权、限流、熔断、健康检查、动态上游发现等常用功能。通过集群化横向扩展多实例的部署方式,可作为企业级边缘网关承载百万级并发,也可根据环境的逻辑划分,每个逻辑单元部署一套,用于需要多环境管理的场景。 开源许可协议 :Apache-2.0 BookStack BookStack,基于 MinDoc,使用 Beego 开发的在线文档管理系统,功能类似 Gitbook 和看云。在开发的过程中,增加和移除了一些东西,目前已经不兼容 MinDoc 了(毕竟数据表结构、字段、索引都有了一些不同),同时只支持 Markdown 编辑器。 开源许可协议: Apache-2.0 ant-design-vue 基于 Ant Design 和 Vue