ElasticSearch
渊云
分享技术,互相交流,致敬无私分享的程序人
展开
-
ElasticSearch返回指定字段
环境:阿里云ElasticSearch6.7需求:返回查询结果的指定字段,并不需要所有字段在_source字段中直接指定需要返回的字段GET /ads_lading_trade_brief_es_v2/_search{ "_source": [ "trade_id", "country", "importer_clean_name" ]}也可以在_source字段中执行需要保留的字段和需要过滤的字段,如下所示,其中includes代表需要返回的字段,exc原创 2021-02-05 09:48:35 · 4944 阅读 · 0 评论 -
ElasticSearch通过字段值的长度过滤
环境: 阿里云ElasticSearch6.7.0需求: 通过字段值的长度对数据进行搜索GET /ads_lading_trade_detail_es_v2_20201203/_search{ "query": { "bool": { "must": [ { "term": { "country": { "value": "PH" } }原创 2021-01-11 19:54:09 · 2930 阅读 · 2 评论 -
ElasticSearch新增字段
环境: 阿里云ElasticSearch 6.7需求: 给指定索引增加字段创建一个索引PUT /indexName{ "settings": { "number_of_shards": 2, "number_of_replicas": 1 }, "mappings": { "_doc": { "properties": { "id": { "type": "long" }, "na原创 2020-12-22 17:18:19 · 3306 阅读 · 0 评论 -
ElasticSearch索引复制Reindex
环境: 阿里云ElasticSearch6.7情景: ElasticSearch的索引mapping由于不满足生产需求,需要重建mapping例如:将字段dt 的数据类型由 keyword 改成 long 类型实现方法:原索引mappingPUT /ads_lading_trade_detail_es?pretty{ "settings": { "index": { "number_of_shards": "6", "blocks": {原创 2020-12-17 14:02:32 · 804 阅读 · 2 评论 -
ElasticSearch利用updateByQuery同时修改多个字段
环境; 阿里云ElasticSearch6.7.0需求: 利用updateByQuery同时修改一条记录的多个字段POST /ads_lading_trade_brief_es/_update_by_query?conflicts=proceed&wait_for_completion=false{ "script": { "source": "ctx._source.exporter_province='浙江省';ctx._source.exporter_city='绍兴市'",原创 2020-12-10 10:08:50 · 5626 阅读 · 0 评论 -
ElasticSearch6.7使用_delete_by_query产生版本冲突(version conflict)问题
环境:ElasticSearch6.7问题产生的原因:对某个index的数据进行删除,删除的数据量在千万级别。删除过程中产生版本冲突。删除脚本如下:POST /ads_lading_trade_brief_es_02/_delete_by_query{ "query": { "bool": { "must": [ { "match": { "country": "CR" } },原创 2020-11-06 16:32:14 · 7001 阅读 · 5 评论 -
ElasticSearch 出现 cluster_block_exception read_only_allow_delete问题
问题出现的原因对一个索引做别名的增加,结果报错,如下所示:{"type"=>"cluster_block_exception", "reason"=>"blocked by: [FORBIDDEN/12/index read-only / allow delete (api)这里额外附上别名删除和增加的代码:// 别名可以删除PUT /ads_lading_trade_brief_es_02/_settings{"index.blocks.read_only_allow_delet原创 2020-10-30 10:45:01 · 1453 阅读 · 0 评论 -
ElasticSearch对Date类型的字段进行时间间隔的聚合
环境:ElasticSearch6.7需求:在ElasticSearch中,我想对指定条件过滤之后的数据再通过按月份进行聚合。我们聚合的字段的Date类型。ElasticSearch的代码实现如下:GET /ads_lading_trade_brief_es/_search{ "size": 0, "query": { "bool": { "must": [ { "match": { "country": "US原创 2020-10-23 14:03:47 · 1329 阅读 · 0 评论 -
ElassticSearch对字段截取后再聚合
环境:ElasticSearch6.7需求:利用ElasticSearch某个字段值的前几位进行聚合Restful查询语句:GET /ads_lading_trade_brief_es/_search{ "size": 0, "query": { "bool": { "must": [ { "match": { "country": "US" } } ] }原创 2020-10-23 12:41:26 · 2196 阅读 · 3 评论 -
ElasticSearch使用Restful的两种聚合方式
环境:ElasticSearch6.7需求:对多个字段进行聚合,并在聚合后对某个字段在进行求和,类似于SQL中的:select sum(求和字段) from table where ... group by 字段1,字段2,字段3;ElasticSearch的Restful API实现(方式一):GET /ads_united_standard_analysis_im_exporter/_search{ "query": { }, "size": 0, "aggs": {原创 2020-10-23 10:58:41 · 215 阅读 · 0 评论 -
ElasticSearch实现类SQL的sum,count,group by,having功能
环境:ElasticSearch6.7需求:公司数据原先存于阿里云的AnalyticDB for MySQL(以下简称ADBADB),它是一个OLAP分析性数据库,功能强大,支持全文索引和多值列查询,以前是用代码(在IDE工具用.yml文件写SQL语句)基于ADB开发接口进行实时查询数据,但ADB在搜索方面和分词方面相对ADB而言目前来说性能还是有所不足,因此准备将所有基于ADB的SQL语句接口迁移至ElasticSaerch。在ADB中的代码开发如下所示: select reporter,原创 2020-10-22 17:57:13 · 2708 阅读 · 0 评论 -
ElasticSearch Index插入数据报错“error“:{“type“:“cluster_block_exception“,“reason“:“blocked by: [FORBIDDEN/
问题描述:自己利用Dataworks(阿里云的一个可视化工作平台,其实底层就是利用DataX将数据传输,其实什么工具并不重要的)将数据写入ElasticSearch的Index,刚开始数据导入显示正常,但是在ElasticSearch 中查询不到数据,到最后Dataworks还报错,这里报错就不截图了。就是卡在图一这个页面,然后报错,报错信息如下:报错信息:“error”:{“type”:“cluster_block_exception”,“reason”:“blocked by: [FORBID原创 2020-10-12 19:56:36 · 2411 阅读 · 0 评论 -
ElasticSearch的search.max_buckets值1000限制问题
环境:ElasticSearch6.7问题描述:{ "error": { "root_cause": [], "type": "search_phase_execution_exception", "reason": "", "phase": "fetch", "grouped": true, "failed_shards": [], "caused_by": { "type": "too_many_buckets_exception", "reason": "Trying to create too原创 2020-10-10 17:16:44 · 12679 阅读 · 13 评论