
elasticsearch
祈雨v
这个作者很懒,什么都没留下…
展开
-
elasticsearch报错index read-only
背景线上服务器的Elasticsearch服务大量报错,查询数据没问题,但是新增或者修改数据时,返回如下错误:{ "error": { "root_cause": [ { "type": "cluster_block_exception", "reason": "blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];" } ], "type": "原创 2020-05-28 20:17:57 · 4899 阅读 · 0 评论 -
elasticsearch性能优化
1、硬件优化1.1、 硬件使用固态硬盘储存设备准备足够的内存禁止使用swap交换分区1.2、 页缓存elasticsearch查询依赖操作系统的页面高速缓存(File system cache),因此除了需要给elasticsearch的JVM分配足够的内存以外,还需要给页缓存预留内存。例如单机32G内存,给JVM配置16G内存后,剩余16G预留内存不需要额外配置,也不要让其他进...原创 2019-10-30 20:36:10 · 866 阅读 · 0 评论 -
elasticsearch实现like查询
问题elasticsearch查询需要实现类似于mysql的like查询效果,例如值为hello中国233的记录,即可以通过中国查询出记录,也可以通过llo查询出记录。但是elasticsearch的查询都是基于分词查询,hello中国233会默认分词为hello、中、国、233。当使用hello查询时可以匹配到该记录,但是使用llo查询时,匹配不到该记录。解决由于记录内容分词的结果的粒度...原创 2019-05-09 21:40:50 · 14927 阅读 · 3 评论 -
elasticsearch实现乐观锁
elasticsearch的写操作是原子性的,可以通过如下两种方式实现es写操作的乐观锁。基于_versionversion_type在elasticsearch6.x被移除,故该方法不适用于6.x版本,详见https://www.elastic.co/guide/en/elasticsearch/reference/6.7/docs-update.htmlPUT /user/user_ty...原创 2019-05-01 11:43:48 · 1027 阅读 · 0 评论 -
elasticsearch准实时原理
概要elasticsearch被称为准实时搜索,原因是对es的写入操作成功后,写入的数据需要1秒钟后才能被搜索到,因此es搜索是准实时或者又称为近实时(near real time)。elasticsearch底层使用的Lucene,而Lucene的写入是实时的。但Lucene的实时写入意味着每一次写入请求都直接将数据写入硬盘,因此频繁的I/O操作会导致很大的性能问题。原理当一个写请求发...原创 2019-04-21 22:20:09 · 1694 阅读 · 0 评论 -
elasticsearch(12)用function_score自定义相关度分数算法
原创文章,转载请注明: 转载自优快云本文链接地址: ElasticSearch用function_score自定义相关度分数算法需求在field: tile 和 content 中查找 java spark 的doc要求follower_num越多的 doc 分数越高。(看帖子的人越多,那么帖子的分数就越高)function_score函数:我们可以做到自定义一个function...转载 2018-10-31 14:24:07 · 581 阅读 · 0 评论 -
elasticsearch(11)通过ngram分词机制实现搜索推荐
原创文章,转载请注明: 转载自简书本文链接地址: Elasticsearch通过ngram分词机制实现搜索推荐1、什么是ngram例如英语单词 quick,5种长度下的ngramngram length=1,q u i c kngram length=2,qu ui ic ckngram length=3,qui uic ickngram length=4,quic uickngra...转载 2018-10-31 14:23:00 · 2524 阅读 · 1 评论 -
elasticsearch(10)重建索引
ES对于已存在的索引字段无法修改,如果要修改索引结构,可以通过新建一个修改结构后的新索引,然后将旧索引中的数据复制到新索引中,变相实现修改索引。配合索引别名可以实现无缝修改索引结构。PUT /my_index_v1/_alias/my_index 示例:将testindex索引下的数据复制到testindex2索引下。默认配置下,对于type和id相同的文档直接覆盖处理。POST /_r...原创 2018-10-09 09:58:13 · 763 阅读 · 0 评论 -
elasticsearch(9)实现字符串排序
对于text类型字段,ES默认分词且不会建立正排索引。即使设置"fielddata": true建立正排索引后,对该字段的排序依然有问题:ES不会以整个字段文本排序,而是选择分词后的一个字段进行排序。对于ES5.x可以设置需要排序的字段为keyword类型,该类型默认不分词且"doc_values":true即默认建立正排索引。对于需要分词的字段,想实现字符串排序可以将该字段建立两次索引,一个...原创 2018-10-09 09:55:38 · 5565 阅读 · 0 评论 -
elasticsearch(8)聚合统计-管道聚合
聚合路径聚合路径的定义如下:聚合分隔符为>指标分隔符为.聚合名为<聚合的名称>指标名为<指标的名称>路径为<聚合名>[<聚合分隔符><聚合分隔符>]*[<指标分隔符><指标>]例如:基于女性人群的平均身高对国家这个指标进行倒序排序。GET /testindex/testtype/_原创 2018-10-09 09:54:44 · 636 阅读 · 0 评论 -
elasticsearch(5)映射
示例PUT /secisland{ "mappings": { "user": { "_all": { "enabled": false }, "properties": { "title": {原创 2018-09-21 17:20:11 · 180 阅读 · 0 评论 -
elasticsearch(7)聚合统计-分组聚合
直方图聚合GET /index/type/_search{ "size": 0, "aggs": { "test_histogram": { "histogram": { "field": "field1", "interval": 5 } } }}返回值表示,[15,20)原创 2018-09-26 20:31:49 · 3884 阅读 · 0 评论 -
elasticsearch(6)聚合统计-度量聚合
平均值聚合GET /index/type/_search{ "size": 0, "aggs": { "test_avg": { "avg": { "field": "field1" } } }}对于缺失统计字段的数据,默认情况下聚合时会被忽略。可以通过设置missing参数,给缺失统计字段的数据一个默认值进行原创 2018-09-26 20:31:09 · 2248 阅读 · 0 评论 -
elasticsearch(4)查询DSL
全部搜索GET /index/type/_search{ "query": { "match_all": {} }}例如:GET /ecommerce/product/_search{ "query": { "match_all": {} }}分页搜索GET /index/type/_search{ "query":...原创 2018-09-09 20:31:22 · 789 阅读 · 0 评论 -
elasticsearch(3)倒排索引
Elasticsearch使用一种称为倒排索引的结构,它适用于快速的全文搜索。一个倒排索引由文档中所有不重复词的列表构成,对于其中每个词,有一个包含它的文档列表。当Elasticsearch储存如下的几条数据时,数据会被分词拆分。 1. my name is tom. 2. tom comes from English. 词 id my 1 name...原创 2018-09-09 20:28:51 · 172 阅读 · 0 评论 -
elasticsearch(2)简单的CRUD操作
createPUT /index/type/id{ "key":"value"}例如:PUT /ecommerce/product/1{ "name":"高露洁牙膏", "desc":"高效美白", "price":30, "tags":["美白","防蛀原创 2018-09-09 20:27:48 · 291 阅读 · 0 评论 -
elasticsearch(1)常用命令
查看集群状态requestGET _cat/health?vresponseepoch timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_perce...原创 2018-09-09 20:26:13 · 159 阅读 · 0 评论