自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(186)
  • 收藏
  • 关注

转载 C/C++ 中头文件相互包含引发的问题(was not declared in this scope)

问题引入最近遇到一个问题,重构的代码编译报定义的某个宏was not declared in this scope,但是明明已经引入了包含此宏的头文件。问题分析(转载内容)我把问题脱离于项目简单描述一下:我写了一个函数 bool func(ClassA* CA) 需要加到项目中,我就把这个函数的声明放到 head1.h 中,函数参数类型 ClassA 定义在另一个头文件 head2.h 中,因此我需要在 head1.h 中包含 head2.h;而 head2.h 中之前又包含了 head1.h,这样就

2021-10-04 05:54:14 8804 3

原创 容器环境下IP跨网闸映射kafka部署

一、 listeners 和 advertised.listeners在公司内网部署 kafka 集群只需要用到 listeners,内外网需要作区分时才需要用到advertised.listeners。listeners: 学名叫监听器,其实就是告诉外部连接者要通过什么协议访问指定主机名和端口开放的 Kafka 服务。我们要监听的uri的逗号分隔列表和监听器名称。指定hostname为0.0.0.0绑定所有接口。hostname为空以绑定到默认接口(JVM拿到的本机的hostname,java.ne

2021-04-06 15:10:02 1466

原创 时间间隔宏计算

对结果按时间间隔分桶#define TIME_INTERVAL(a,b) (((a)<<32) + (b&0x00000000ffffffffL))UINT64 lKey = 0 ;if (0 == iTimeInterval){ lKey = TIME_INTERVAL((UINT64)iTime, (UINT64)iTaskid);}else{ lKey = TIME_INTERVAL((UINT64)(iTime/iTimeInterval * iTimeIn

2020-11-24 13:57:40 452

原创 错误码与错误信息

//错误码#define MSG_OK 0x0000 //成功#define MSG_ERR 0x0001 //错误//错误码与错误信息结构体typedef struct{ int iret; const char *errMsg;}ls_msg_resCode;//错误码与错误信息映射ls_msg_resCode server_MsgCode[] ={ {MSG_OK, "success"}, {MSG_ERR,

2020-09-27 16:55:41 442

原创 带有string成员的结构体进行memset引发的问题

结构体如下:struct StruTest{ string strSrcId; string strDestId; HPR_INT32 iCount; StruTest() { memset(this, 0, sizeof(StruTest)); iCount= -1; }};引发问题:StruTest struTest;struTest.strSrcId=""; //core掉struTest.strSrcId="123"; //不会core掉解析:

2020-07-13 18:15:29 1139 2

原创 soupUI发送中文乱码问题

问题描述:用Soap UI工具做数据库接口测试时,调用某一向数据库里添加记录的接口,发现数据库里的中文乱码了。问题分析:直接在代码中测试接口,发现数据库保存记录的中文不乱码。推断出Soap UI工具,在调用接口时,将中文进行了转码。解决办法:点击左侧树上的该请求,编辑请求属性中的encoding 属性为utf-8。...

2020-06-30 11:05:25 443

原创 kafka高速导入数据引发的磁盘占满问题

今天Kafka出现了一个问题,测试多线程高速生产数据,造成磁盘占满了。我们的kafka配置文件策略如下:log.retention.bytes=1073741842 # topic每个分区的文件存储大小 1Glog.segment.bytes=536870921 # topic每个分区的每个段的文件存储大小 512Mlog.retention.check.interval.ms=60000 #检测时间60slog.segment.delete.delay.ms = 60000 #标记删除延时

2020-06-01 20:05:22 1398

转载 MongoDB 集合(Collection)对应的物理文件

dbpath下是清一色的collection-n-***与index-n-***开头的物理文件,如何知道某一个集合与其对应与其对应的物理文件?db.collection_name.stats()返回的结果包含集合数据对应的物理文件db.collection_name.stats({indexDetails:true})返回的结果包含集合数据和索引对应的物理文件官方有db.collection.stats用法的详细信息:https://docs.mongodb.com/manual/referenc

2020-05-25 11:11:11 812

转载 mongodb数据存储原理

https://blog.csdn.net/ZH01234565/article/details/82886897

2020-05-25 10:08:54 702

原创 ES Fielddata

一、简介在ES中,text类型的字段使用一种叫做fielddata的查询时内存数据结构。当字段被排序,聚合或者通过脚本访问时这种数据结构会被创建。它是通过从磁盘读取每个段的整个反向索引来构建的,然后存存储在java的堆内存中。fileddata默认是不开启的。Fielddata可能会消耗大量的堆空间,尤其是在加载高基数文本字段时。一旦fielddata已加载到堆中,它将在该段的生命周期内保留。此外,加载fielddata是一个昂贵的过程,可能会导致用户遇到延迟命中。这就是默认情况下禁用fielddata

2020-05-22 11:11:54 2997

转载 ES基于completion suggest实现搜索提示

下面说说在es中的种实现搜索提示的功能,基于completion suggest 进行实现,其在实际应用中搜索性能更加高效。假如文档库里有一堆关于大话西游的,比如,“大话西游电影”,“大话西游小说”,"大话西游舞台剧"等,这里我们需要搜索以"大话西游"开头的文档。1、自定义index,及字段分词属性,这里用IK中文分词器:PUT /news_website{ "mappings": { "news" : { "properties" : { "title" .

2020-05-21 13:50:55 3152 2

转载 ES5.x中文文档

http://doc.codingdict.com/elasticsearch/101/

2020-05-21 11:35:42 1569

转载 Elasticsearch安全认证功能

https://www.cnblogs.com/jclty/p/12913996.htmlhttps://blog.csdn.net/laoyang360/article/details/90554761?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog

2020-05-20 16:38:21 850 1

转载 ES嵌套对象和父子文档

1.join 简介在 ES 中有一种特殊的数据类型『join』,被形象地称为父子文档。它是一种可以在同一索引中存放两种有关系数据的数据类型,类似于关系数据库中让两张表发生关系的外键 FOREIGN KEY 。在官方文档中这样介绍:join 数据类型的字段是一个特殊字段,它可以在同一个索引的文档中创建 父子关系 。通过参数 relations 定义可能存在关系的一组文档,这个关系的参数由 父名 和 子名 构成。2.定义我们需要在设置 mapping 时将其关系定义好,如下示例:PUT 索引名称{

2020-05-19 20:50:36 1273

原创 MongoDB单机集群搭建

一、单机副本集部署方案:单台物理机,一个主节点,一个副本节点,一个仲裁节点。二、部署步骤1、在mongodb目录下新建config目录(目录及位置可随意指定,在此按照config目录搭建),在config目录中新建主节点配置文件primary.conf (文件名可随意指定):[root@Thor config]# cat primary.conf port = 51077 #主节点端口号directoryperdb = true #设置每个数据库将被保存在一个单独的目录shardsvr =

2020-05-18 21:34:13 804

原创 MongoDB副本集与分片

一、MongoDB 副本集1.1、MongoDB复制在mongodb学习阶段,一般功德都是单台服务器,一个mongod服务进程。如果仅仅作为学习开发是可以的,但是如果用到生产环境,风险会很高,例如服务器崩溃、硬件出现问题,最坏的情况是磁盘或网络出问题可能会导致数损坏或数据不可访问。MongoDB复制是将数据同步在多个服务器的过程。复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性, 并可以保证数据的安全性。1.2、副本集副本集是一组维护相同数据集的mongod实例。副本

2020-05-18 16:55:32 1571

转载 ES索引存储原理

ES索引存储原理不变性写到磁盘的倒序索引是不变的:自从写到磁盘就再也不变。这会有很多好处:不需要添加锁。不存在写操作,因此不存在多线程更改数据。提高读性能。一旦索引被内核的文件系统做了Cache,绝大多数的读操作会直接从内存而不需要经过磁盘。提升其他缓存(例如fiter cache)的性能。其他的缓存在该索引的生命周期内保持有效,减少磁盘I/O和计算消耗。当然,索引的不变性也有缺点。如果你想让新修改过的文档可以被搜索到,你必须重新构建整个索引。这在一个index可以容纳的数据量和一个索引可

2020-05-14 15:57:07 351

原创 深度分页问题

深度分页es为了性能,限制了我们分页的深度,es目前支持的最大的 max_result_window = 10000;也就是说我们不能分页到10000条数据以上。from + size 这种方式不适用于深度分页场景,下面介绍其它两种分页方式:• Search After• Scroll Apifrom + size的分页方式虽然是最灵活的分页方式,但是当分页深度达到一定程度将会产生深度分页的问题。scroll如果一次性要查出来比如10万条数据,那么性能会很差,此时一般会采取用scoll滚动查询

2020-05-13 15:59:04 1182

原创 bouncing results问题

一、bouncing results成因及解决方案bouncing results问题,两个document排序,field值相同;不同的shard上,可能排序不同;每次请求轮询路由到不同的replica shard上;每次页面上看到的搜索结果的排序都不一样。这就是bouncing result的问题,这个问题出现最多的地方就是timestamp进行排序比如当你使用一个timestamp字段对结果进行排序,因为es中时间格式为%Y-%m-%d,那么同样时间的数据会有很多。es如果不做任何设置,将会按ro

2020-05-13 15:45:32 408

原创 正排索引(doc values)

doc values搜索的时候,要依靠倒排索引;排序的时候,需要依靠正排索引,看到每个document的每个field,然后进行排序,所谓的正排索引,其实就是doc values。在建立索引的时候,一方面会建立倒排索引,以供搜索用;一方面会建立正排索引,也就是doc values,以供排序,聚合,过滤等操作使用doc values是被保存在磁盘上的,此时如果内存足够,os会自动将其缓存在内存中,性能还是会很高;如果内存不足够,os会将其写入磁盘上倒排:doc1: hello world you a

2020-05-13 14:55:49 1119

转载 图解Elasticsearch中的_source、_all、store和index属性

https://blog.csdn.net/napoay/article/details/62233031

2020-05-12 20:21:08 176

转载 Elasticsearch存储深入详解

https://blog.csdn.net/laoyang360/article/details/82559729

2020-05-11 16:12:57 188

原创 进程管理

进程是UNIX系统中仅次于文件的基本抽象概念。当代目标代码执行时,正在运行的不仅仅是汇编代码,而是由数据、资源、状态和虚拟的计算机组成。一、程序、进程和线程程序(program)是指编译过的、可执行的二进制代码,保存在存储介质,如磁盘上。规模很大的二进制程序集可以称为应用。/bin/ls和/usr/bin/X11都属于二进制程序。进程(process)是指正在运行的程序,是分配资源的基本单位...

2020-05-08 14:46:15 150

原创 ES多种搜索方式总结

本节使用的是ES低版本,包含type。分类query string searchquery DSLquery filterfull-text searchphrase searchhighlight search1、query string search搜索全部商品:GET /ecommerce/product/_searchtook:耗费了几毫秒timed_out:...

2020-04-29 11:01:39 1200

原创 Delete/Update by query

一、引言之前介绍的文档删除与更新(ES的更新是重建->删除->重新索引)只能通过_id,但这不符合我们的使用场景,我们更希望能够像数据库那样通过条件进行删除/更新。通过Delete/Update by query这两个API可以做到这点,对指定查询匹配的文档进行删除/更新。之前在 2.X版本里 这个功能被去掉了 因为官方认为会引发一些错误 如需使用 需要自己安装插件。那么在5.x...

2020-04-28 15:32:16 275

转载 干货 | Elasticsearch开发人员最佳实战指南

https://hiddenpps.blog.csdn.net/article/details/105424222

2020-04-28 10:17:23 133

原创 精确值 VS 全文

精确值 VS 全文当摆弄索引里面的数据时,我们发现一些奇怪的事情。一些事情看起来被打乱了:在我们的索引中有12条推文,其中只有一条包含日期 2014-09-15 ,但是看一看下面查询命中的 总数 (total):GET /_search?q=2014 # 12 resultsGET /_search?q=2014-09-15 # 12 results ...

2020-04-27 18:09:55 261

原创 Elasticsearch查询

一、简介Elasticsearch提供了基于JSON的完整查询DSL(特定于域的语言)来定义查询。 将查询DSL视为查询的AST(抽象语法树),它由两种子句组成:叶子查询子句叶子查询子句在特定字段中查找特定值,例如match,term或range查询。 这些查询可以自己使用。复合查询子句复合查询子句包装其他叶查询或复合查询,并用于以逻辑方式组合多个查询(例如bool或dis_max查询...

2020-04-27 16:17:10 334

原创 Elasticsearch词汇解释

term  索引词,在elasticsearch中索引词(term)是一个能够被索引的精确值。foo,Foo Foo几个单词是不相同的索引词。索引词(term)是可以通过term查询进行准确的搜索。text  文本是一段普通的非结构化文字,通常,文本会被分析称一个个的索引词,存储在elasticsearch的索引库中,为了让文本能够进行搜索,文本字段需要事先进行分析;当对文本中的关键词进行查...

2020-04-27 10:33:17 192

翻译 Elasticseach重要的配置

重要的Elasticsearch配置Elasticseach配置的配置项很多,前面几篇文档仅仅翻译了一部分,其他的配置参见官网。本篇重点介绍重要的Elasticsearch配置。虽然ElasticSearch只需要很少的配置,但在投入生产之前需要考虑一些设置。在开始生产之前,必须考虑以下设置:路径设置节点名字集群名字网络主机发现设置堆大小堆转储路径...

2020-04-26 21:20:48 245

翻译 Elasticseach配置

一、简介ElasticSearch具有良好的默认值,只需要很少的配置。可以使用Cluster Update Settings在正在运行的群集上更改大多数设置。配置文件应包含特定于节点的设置(如node.name和路径),或节点为了能够加入群集而需要的设置(如cluster.name和network.host)。1.1、配置文件位置ElasticSearch有三个配置文件:使用Elast...

2020-04-26 18:31:37 178

原创 ES相关性(_score)

什么是相关性?我们曾经讲过,默认情况下,返回结果是按相关性倒序排列的。 但是什么是相关性? 相关性如何计算?每个文档都有相关性评分,用一个正浮点数字段 _score 来表示 。 _score 的评分越高,相关性越高。查询语句会为每个文档生成一个 _score 字段。评分的计算方式取决于查询类型 不同的查询语句用于不同的目的: fuzzy 查询会计算与关键词的拼写相似程度,terms 查询会计...

2020-04-26 16:46:53 3871

原创 ES排序

排序为了按照相关性来排序,需要将相关性表示为一个数值。在 Elasticsearch 中, 相关性得分 由一个浮点数进行表示,并在搜索结果中通过 _score 参数返回, 默认排序是 _score 降序。有时,相关性评分对你来说并没有意义。例如,下面的查询返回所有 user_id 字段包含 1 的结果:GET /_search{ "query" : { "bool...

2020-04-26 15:52:50 7606

原创 ES查询与过滤对比

查询与过滤Elasticsearch 使用的查询语言(DSL)拥有一套查询组件,这些组件可以以无限组合的方式进行搭配。这套组件可以在以下两种情况下使用:过滤情况(filtering context)和查询情况(query context)。当使用于 过滤情况 时,查询被设置成一个“不评分”或者“过滤”查询。即,这个查询只是简单的问一个问题:“这篇文档是否匹配?”。回答也是非常的简单,yes ...

2020-04-26 14:31:59 981

原创 Elasticsearch分析与分析器

分析与分析器分析 包含下面的过程:首先,将一块文本分成适合于倒排索引的独立的 词条 ;之后,将这些词条统一化为标准格式以提高它们的“可搜索性”,或者 recall。分析器执行上面的工作。 分析器 实际上是将三个功能封装到了一个包里:字符过滤器首先,字符串按顺序通过每个 字符过滤器 。他们的任务是在分词前整理字符串。一个字符过滤器可以用来去掉HTML,或者将 & 转化成 a...

2020-04-26 10:29:40 132

原创 _all 字段

_all 字段这个简单搜索返回包含 mary 的所有文档:GET /_search?q=mary之前的例子中,我们在 tweet 和 name 字段中搜索内容。然而,这个查询的结果在三个地方提到了 mary :有一个用户叫做 Mary6条微博发自 Mary一条微博直接 @maryElasticsearch 是如何在三个不同的字段中查找到结果的呢?当索引一个文档的时候,Elas...

2020-04-26 10:13:03 288

原创 Elasticsearch倒排索引

倒排索引Elasticsearch 使用一种称为 倒排索引 的结构,它适用于快速的全文搜索。一个倒排索引由文档中所有不重复词的列表构成,对于其中每个词,有一个包含它的文档列表。例如,假设我们有两个文档,每个文档的 content 域包含如下内容:1、The quick brown fox jumped over the lazy dog2、Quick brown foxes leap ov...

2020-04-25 22:26:27 299

原创 Elasticsearch映射_mapping

映射和分析当摆弄索引里面的数据时,我们发现一些奇怪的事情。一些事情看起来被打乱了:在我们的索引中有12条推文,其中只有一条包含日期 2014-09-15 ,但是看一看下面查询命中的 总数 (total):GET /_search?q=2014 # 12 resultsGET /_search?q=2014-09-15 # 12 results !GE...

2020-04-24 17:43:58 205

原创 ES搜索--轻量搜索语法

一、引言现在,我们已经学会了如何使用 Elasticsearch 作为一个简单的 NoSQL 风格的分布式文档存储系统。我们可以将一个 JSON 文档扔到 Elasticsearch 里,然后根据 ID 检索。但 Elasticsearch 真正强大之处在于可以从无规律的数据中找出有意义的信息——从“大数据”到“大信息”。Elasticsearch 不只会_存储(stores)_ 文档,为了能...

2020-04-24 16:07:22 1285

原创 ES批量操作

一、引言与 mget 可以使我们一次取回多个文档同样的方式, bulk API 允许在单个步骤中进行多次 create 、 index 、 update 或 delete 请求。 如果你需要索引一个数据流比如日志事件,它可以排队和索引数百或数千批次。在单个API调用中执行多个批量操作。 这样可以减少开销,并可以大大提高索引速度。二、bulk API2.1、语法POST _bulk{ "...

2020-04-24 13:48:29 955

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除