ES
黑人子敬
这个作者很懒,什么都没留下…
展开
-
elasticsearch——查询分词结果
查询索引某条记录某个字段实际的分词结果:GET /${index}/${type}/${id}/_termvectors?fields=${fields_name}原创 2020-08-20 16:56:52 · 1328 阅读 · 0 评论 -
elasticsearch——reindex部分数据复制
reindex复制索引数据时,最基础的是做全量复制,有些时候想要根据时间戳做增量复制,这种情况可以加搜索条件1.reindex部分数据POST _reindex{ "source": { "index": "index_1", "type": "documents", "query": { "term": { "group": "group1" } } }, "dest": { "index": "i原创 2020-06-23 14:46:42 · 2314 阅读 · 0 评论 -
elasticsearch——跨集群数据迁移
网上有工具做数据迁移:https://github.com/medcl/esm可copy mapping ,copy setting等,操作方便目前发现的问题有:1.long型超过16位会精度丢失,数据中有此类型数据时要注意原创 2020-05-11 14:24:55 · 400 阅读 · 2 评论 -
elasticsearch——ES集群分片不平衡处理
在使用云上的一个ES集群的时候,发现搜索性能很差,查看分片情况,发现ES有12个节点,索引创建了10个分片,1个副本,最后20个分片全在其中3个节点上,分布不均衡,实际只消耗了3个节点的资源,所以性能很差,再次创建新的索引,发现仍然是这种情况,最后通过下面的命令查到集群reblance属性是noneGET _cluster/settings参考:https://www.jianshu.c...原创 2020-04-30 11:31:14 · 3860 阅读 · 0 评论 -
elasticsearch——设置索引只读
PUT index/_settings{ "index": { "blocks": { "read_only": "true" } }}原创 2020-04-30 11:24:20 · 1980 阅读 · 2 评论 -
elasticsearch——搜索条件一样,返回结果顺序不一样
现在遇到两种情况,分情况分析一下1.得分不同如果因为最后结果的得分不同,所以排序的时候有先后的话,需要加search_type参数/_search?search_type=dfs_query_then_fetch详情可以参考:https://www.jianshu.com/p/c7529b98993e2.得分相同当得分相同,各种排序条件相同的记录会随机排序,尤其是...原创 2020-02-24 15:24:07 · 2623 阅读 · 1 评论 -
elasticsearch--动态同义词
进行文档搜索时,有时候需要用到同义词搜索。我平时做简单搜索时,都是在代码测做分词,同义词做替换,然后拼写DSL搜索,但是碰到双向同义词和要求匹配度100%时,这种情况无法解决,所以需要在es测做同义词处理。动态同义词可以参考:https://blog.csdn.net/t_6666/article/details/56489275https://www.cnblogs.com...原创 2020-02-04 17:31:52 · 1260 阅读 · 0 评论 -
elasticsearch——upsert(类似于oracle中merge的方法)
实现有则更新,无则插入参数中增加doc_as_upsert属性例:{ '_index': INDEX_NAME, '_type': doc_type, '_id': doc['id'], '_op_type': 'update', 'doc': doc['doc'], 'doc_as_upsert': True}...原创 2019-12-12 10:33:08 · 609 阅读 · 0 评论 -
elasticsearch——字段截取
参考链接https://blog.csdn.net/u013613428/article/details/78135258可以通过/pattern/.matcher(text).replaceAll的方式来实现提取与转换原创 2019-11-27 11:15:27 · 3548 阅读 · 0 评论 -
elasticsearch——判断字段是否匹配上
有一个字段的匹配不做过滤来用,仅需要返回的时候有标识,其他逻辑在代码中处理,所以匹配怎么来返回呢?我现在用的两个方法都是很傻的,但是还没找到更好的办法1.script_field返回一个自己建的字段{ "query": { "match_all":{} }, "script_fields": { "test1": { "script": { ...原创 2019-11-27 11:06:10 · 663 阅读 · 0 评论 -
elasticsearch——嵌套聚合(日志分析)
1.十月每天各用户访问量{ "size": 0, "query": { "match_all":{} }, "aggs": { "group_time": { "date_histogram": { "field": "time", "interval": "1d", "time_zone": "+0...原创 2019-11-01 14:19:43 · 379 阅读 · 0 评论 -
elasticsearch——深度分页scroll
项目一开始使用scan做全量查询:documents = es.scan({"query": {"match_all": {}}}, size=500, raise_on_error=False,index="index")for docs in documents: yield [doc.get("_source") for doc in docs]后来发现使用scroll查...原创 2019-10-22 19:22:47 · 582 阅读 · 0 评论 -
elasticsearch——nested字段排序
{ "field.intimacy": { "order": "desc", "mode": "min", "nested": { "path": "field", "filter": { ...原创 2019-09-16 08:39:22 · 2518 阅读 · 0 评论 -
elasticsearch——精确匹配大字段wildcard性能慢问题
经历1.使用逗号分词+wildcard,发现性能很慢2.将内容截断,keyword字段32766+wildcard,发现性能仍然很慢解决a.发现是wildcard的问题,但是想实现部分精确匹配,最后使用match_phrase+standard分词,基本能实现精确匹配,而且效率显著提高参考:http://www.luyixian.cn/news_show_4930.aspx ...原创 2019-07-12 09:44:33 · 10018 阅读 · 0 评论 -
elasticsearch——取几个搜索的最大得分为得分
1.下面写的第二种方法是我以前使用的,后来觉得太冗余了就一直寻找更好的方式,最后发现了dis_max方法,能更好的实现取最大得分为得分:{ "query": { "dis_max": { "queries": [ { "constant_score": { "boost": 700, ...原创 2019-07-01 11:40:42 · 2818 阅读 · 0 评论 -
jieba分词 自定义词典热加载——elasticsearch
信息安全问题不贴代码1.jieba插件https://github.com/hongfuli/elasticsearch-analysis-jieba2.ik插件https://github.com/medcl/elasticsearch-analysis-ik 参考ik分词中的热加载功能修改jieba分词插件的源码步骤:1.编写线程类,ik中是读服务器上的文件,可修改为读取本...原创 2018-09-30 16:11:10 · 2311 阅读 · 0 评论 -
实现and与or查询——elasticsearch
{ "query": { "bool": { "must": [{ "match_phrase": { "name": "a" } }], "should": [{ "match_phrase": { "city": "b" }原创 2018-12-15 14:35:57 · 23319 阅读 · 12 评论 -
minimum_should_match做匹配度过滤——elasticsearch
minimum_should_match:当operator参数设置为or时,该参数用来控制应该匹配的分词的最少数量;{"query":{ "match":{ "字段名":{ "query":"查询内容", "operator":"or", "原创 2019-01-04 16:54:24 · 7675 阅读 · 0 评论 -
kibana完成日志分析——elasticsearch
一.安装部署(详见kibana安装部署)1.下载地址:https://www.elastic.co/downloads/kibana2.修改配置文件 /config/kibana.yml,配置elasticsearch_url3.启动CD c:\kibana-6.0.0-windows-x86_64.\bin\kibana二.日志存储在接口代码中,将请求信息存入es...原创 2019-01-31 10:29:46 · 1707 阅读 · 0 评论 -
精确匹配两个词——elasticsearch
使用默认分词,插入两条{ "No2":"我是韩国第一美的小姐姐", "id":1}{ "No2":"我是中国第一美的小姐姐", "id":2}要求通过查“中国”,“美”,只返回第二条记录,有以下三种方法:1.使用match_phrase{ "query": { "bool": { "must": [ { ...原创 2019-03-20 14:29:43 · 1568 阅读 · 0 评论 -
分页查询大于一万条报错——elasticsearch
当用elasticsearch进行深度分页查询时的size-from大于10000的时候,就会报错“”,官方推荐是scroll查询返回结果是无序的不满足业务需求,所以还是通过设置最大返回结果数来达到我们的目的然后我们可以通过以下方法设置:第一种:curl -XPUT http://127.0.0.1:9200/_settings -d '{ "index" : { "max_resul...转载 2019-04-10 16:11:54 · 3646 阅读 · 0 评论 -
指定搜索词的分词方法——elasticsearch
{ "query": { "bool": { "should": [ { "match": { "name": { "analyzer": "ik_smart", "query": "haha" } } ...原创 2019-04-10 16:32:19 · 3929 阅读 · 0 评论 -
相同内容但是得分不同——elasticsearch
非精确匹配的时候,发现字段值相同的内容的得分竟然不同,神奇!查询发现解决办法:https://www.jianshu.com/p/c7529b98993eGET索引名/_search?search_type=dfs_query_then_fetch...原创 2019-04-10 16:47:43 · 625 阅读 · 0 评论 -
分词方法选择很重要
今天不太忙,就自我检讨一下,平台上有ik_smart,whitespace,standard的分词方法,每次有人字段有中文的时候我都让他们用ik_smart分词,后来用户经常有那种一个名称中缺几个字那样的查询,发现是ik_smart分词总会分不好就直接查不出来,我就建议用户用ik_max_word,因为会分的比较散,然后就总会查出来,后来字段里有英文和数字的时候分的十分的散,怎么都没办法了,后来还...原创 2019-04-10 17:19:55 · 185 阅读 · 2 评论 -
正则表达式查询——elasticsearch
使用默认分词,插入两条{ "message":"我是姐姐", "id":1}{ "message":"我是姐姐的姐姐", "id":2}查询出现两个姐姐的记录{ "query":{ "regexp":{ "message.keyword":{ "value":"(.*姐姐.*){3}" } } ...原创 2019-03-28 11:25:36 · 933 阅读 · 1 评论 -
杂——elasticsearch
平时一般都用kibana,一般的搜索都有联想,然后有几个不给联想的但经常用的,记录一下最爱用的文档:https://elasticsearch-py.readthedocs.io/en/master/api.html#indices1.分词POST 索引名/_analyze{ "analyzer": "standard", "text": ["要分的词"]}2.索引复...原创 2019-04-02 10:11:33 · 266 阅读 · 0 评论 -
elsastisearch添加分词方法
需要有分隔词的分词.首先关闭索引,否则报错 Can't update non dynamic settings。POST索引名/_closePUT 索引名/_settings{ "settings": { "analysis": { "analyzer": { "my_comma": { "type": "pattern",...原创 2019-05-08 14:18:27 · 902 阅读 · 0 评论 -
elasticsearch字段值等于某字符串时排序靠前【高并发问题】
使用script{ "query": { "term": { "name": "刘" } }, "sort": [ { "_script": { "type": "number", "script": "doc['type.keyword'].value=='male'?0:1", "...原创 2019-06-12 21:33:38 · 4929 阅读 · 0 评论 -
地理位置查询——elasticsearch
1.含地理位置索引创建https://es.xiaoleilu.com/310_Geopoints/20_Geopoints.html2.按经纬度距离排序https://es.xiaoleilu.com/310_Geopoints/50_Sorting_by_distance.html原创 2018-12-13 11:08:05 · 852 阅读 · 0 评论