![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
elasticsearch
文章平均质量分 54
colie_li
coding
展开
-
Java中文分词hanlp使用
HanLP介绍:http://hanlp.linrunsoft.com/github地址:https://github.com/hankcs/HanLP说明:使用hanlp实现分词、智能推荐、关键字提取、摘要等,更多功能参考官网项目结构该项目中,.jar和data文件夹和.properties需要从官网/github下载,data文件夹下载项目配置修改hanlp.prope...转载 2019-12-29 15:38:36 · 449 阅读 · 0 评论 -
ES Query中写入painless脚本
脚本demo按照结果进行排序打分:{ "query": { "function_score": { "functions": [ { "script_score": { "script": { "params": { "times": 10原创 2018-01-13 17:36:50 · 1954 阅读 · 0 评论 -
在ElasticSearch之下(图解搜索的故事)
先自上而下,后自底向上的介绍ElasticSearch的底层工作原理,试图回答以下问题:为什么我的搜索 *foo-bar* 无法匹配 foo-bar ?为什么增加更多的文件会压缩索引(Index)?为什么ElasticSearch占用很多内存?版本elasticsearch版本: elasticsearch-2.2.0内容图解ElasticSea转载 2017-12-05 00:25:55 · 370 阅读 · 0 评论 -
Elasticsearch 5.x 字段折叠的使用
在 Elasticsearch 5.x 有一个字段折叠(Field Collapsing,#22337)的功能非常有意思,在这里分享一下, 字段折叠是一个很有历史的需求了,可以看这个 issue,编号#256,最初是2010年7月提的issue,也是讨论最多的帖子之一(240+评论),熬了6年才支持的特性,你说牛不牛,哈哈。 目测该特性将于5.3发布,尝鲜地址:Elasticsea转载 2017-11-30 15:18:22 · 1050 阅读 · 0 评论 -
elasticsearch 压测优化后的配置
配置说明一、JVM配置:Jdk1.8(es要求最低jdk1.7)最大堆最小堆均为32GGC类型:-XX:+UseG1Gc -XX:MaxGCPauseMillis=200 。其他默认。二、Es集群配置: cluster.name: es-testnode.name: "test-169-71" node.mas转载 2017-09-11 17:41:07 · 945 阅读 · 0 评论 -
Elasticsearch常用配置及性能参数
cluster.name: estest 集群名称node.name: “testanya” 节点名称node.master: false 是否主节点node.data: true 是否存储数据index.store.type: niofs 读写文件方式 index.cache.field.type: soft 缓存类型bootstrap.mlock转载 2017-09-11 17:34:58 · 3604 阅读 · 0 评论 -
elasticsearch 调优过程
调优过程refresh间隔副本数总耗时bulk 量translog条数translog大小文档总数速度备注1s2130min10005000512 MB(默认)15kw11.5W/min 1s290m原创 2017-08-18 19:57:47 · 590 阅读 · 0 评论 -
多字段搜索 (二) - 最佳字段查询及其调优
最佳字段(Best Fields)假设我们有一个让用户搜索博客文章的网站,就像这两份文档一样:PUT /my_index/my_type/1{ "title": "Quick brown rabbits", "body": "Brown rabbits are commonly seen."}PUT /my_index/my_type/2{转载 2017-09-13 20:07:25 · 419 阅读 · 0 评论 -
在elasticsearch里如何高效的使用filter [性能优化必看]
elasticsearch里面有BOOL filter、AND、OR、NOT filter,这几个看起来很相似,都有什么区别呢?什么时候用bool filter?什么时候用AND filter呢?事实上,bool filter和AND 、OR、NOT filter 是完全不同,在查询性能上面的影响是非常大的。首先咱们需要了解的是filter里面都是怎么工作的,其中核心的转载 2017-08-03 15:30:29 · 2164 阅读 · 0 评论 -
短语搜索相关
就像 match 查询对于标准全文检索是一种最常用的查询一样,当你想找到彼此邻近搜索词的查询方法时,就会想到 match_phrase 查询 。GET /my_index/my_type/_search{ "query": { "match_phrase": { "title": "quick brown fox" }原创 2017-08-09 16:45:13 · 681 阅读 · 0 评论 -
Spring Data Elasticsearch
项目清单elasticsearch服务下载包括其中插件和分词http://download.csdn.net/detail/u014201191/8809619项目源码资源文件app.propertieselasticsearch.esNodes=localhos转载 2016-07-01 15:52:09 · 16061 阅读 · 0 评论 -
Elasticsearch 的 Shard 和 Segment
Shard(分片) 一个Shard就是一个Lucene实例,是一个完整的搜索引擎。一个索引可以只包含一个Shard,只是一般情况下会用多个分片,可以拆分索引到不同的节点上,分担索引压力。segment elasticsearch中的每个分片包含多个segment,每一个segment都是一个倒排索引;在查询的时,会把所有的segment查询结果汇总归并后最为最转载 2017-06-10 01:02:28 · 2489 阅读 · 0 评论 -
lucene--DocInverterPerField/DocInverterPerField
1.3.2 第二车间——DocInverterPerField DocInverterPerField 负责对DocFieldProcessorPerThread对象的Fieldable[]数组的内容建立倒排索引,也就是处理同名字的所有Field。但实际上这个类主要解决的是前期工作,比如分词,统计位置信息等。倒排索引结构的核心的工作由TermsHashPerField和 FreqP转载 2017-06-09 18:23:23 · 398 阅读 · 0 评论 -
解析Elasticsearch/lucene打分策略
解析es/lucene的打分策略、打分公式原创 2017-06-07 16:55:15 · 3372 阅读 · 0 评论 -
[Elasticsearch] 分布式搜索
在继续之前,我们将绕一段路来谈谈在分布式环境中,搜索是如何执行的。和在分布式文档存储(Distributed Document Store)中讨论的基本CRUD操作相比,这个过程会更加复杂一些。一个CRUD操作会处理一个文档,该文档有唯一的_index,_type和路由值(Routing Value,它默认情况下就是文档的_id)组合。这意味着我们能够知道该文档被保存在集群中的哪个分片(S转载 2017-06-09 00:29:28 · 285 阅读 · 0 评论 -
elasticsearch bm25调参
bm25 elasticsearch中BM25相似度算法使用的公式如上所示。其中f(qi, D) 表示term qi在文档D中的出现次数,即tf。参数k1用来控制公式对tf的敏感程度,k1越小,对tf越不敏感,即tf增大时,公式的值变化不大。参数b用来控制文档长度对权值的惩罚程度:b原创 2017-06-07 14:32:29 · 5111 阅读 · 0 评论 -
ES通过脚本获取数组对象,以及Kibana相关操作
mappingdata: { properties: { data_value: { type: "long" }, index: { type: "long" }, }}数据{ data: [ { ...原创 2018-02-27 18:31:41 · 2084 阅读 · 0 评论 -
解析elasticsearch二次打分处理方案
有时ES默认的评分规则并不能满足需求,时常会有在old_source的基础上根据某字段的值需要重新打分的需求场景,比如在相关度相差不大的情况下时间越进越靠前,或者评论数越多越靠前等等。此时需要重新打分。对此可以通过两种方式法来处理:1、在创建索引的时候提高文档的权重,根据因素字段值来给文档设置boost.这种方式在lucene5之前有效,之后就无效了。不建议采用。2、通过function_原创 2017-06-01 16:49:40 · 7104 阅读 · 0 评论 -
elasticsearch 通过painless脚本排序 java客户端
通过脚本排序数据内容: "_source": { "userid": 123, "city": [ 102 ], "expection2": [ 2496 ], "sex": 1, "age&qu原创 2018-03-01 17:14:04 · 5048 阅读 · 0 评论 -
ES写一致性原理以及quorum机制深入剖析
(1)consistency,one(primary shard),all(all shard),quorum(default)我们在发送任何一个增删改操作的时候,比如说put /index/type/id,都可以带上一个consistency参数,指明我们想要的写一致性是什么?put /index/type/id?consistency=quorumone:要求我们这个写操作,只...转载 2019-08-11 20:08:38 · 497 阅读 · 0 评论 -
Lucene底层原理和优化经验分享(1)-Lucene简介和索引原理
基于Lucene检索引擎我们开发了自己的全文检索系统,承担起后台PB级、万亿条数据记录的检索工作,这里向大家分享下Lucene底层原理研究和一些优化经验。 从两个方面介绍: 1. Lucene简介和索引原理 2. Lucene优化经验总结1. Lucene简介和索引原理 该部分从三方面展开:Lucene简介、索引原理、Lucene索引实现。1.1 Lucen...转载 2019-02-26 18:07:10 · 256 阅读 · 0 评论 -
Lucene 索引的并发读写
lucene能够很好地支持多线程/进程 访问。1.并发读一个索引可以被多个进程的IndexReader打开。一个进程中,推荐IndexReader被单例多线程使用。IndexReader类不仅是线程安全的,还是线程友好的,即友好地支持并发访问,代码中同步代码(synchronized)块并不多。2.单独写对于一个索引来说,一次只能打开一个IndexWriter。2.1 索引锁机制...转载 2019-02-18 21:59:59 · 644 阅读 · 0 评论 -
Lucene的多线程访问原则和同步,锁机制
本文介绍lucene多线程环境下的使用原则和commit.lock与write.lock实现的锁机制。设计之初就是服务于多线程环境,大多数情况下索引会被不至一个线程访问。索引时一个关键资源。在对这样的资源进行访问时,不可避免地会出现同步访问 的问题。因此需要有很好的策略来处理这些并发访问,以保证资源的合理使用。对索引的非法访问可能导致索引数据异常,进而毁坏重要的数据,导致整个系统的失 败。...转载 2019-02-18 21:59:31 · 346 阅读 · 0 评论 -
ES文档
https://es.xiaoleilu.com/原创 2018-09-25 11:53:26 · 417 阅读 · 0 评论 -
ES搜索调优
1、调整Query:根据实际业务需求调整,防止Query过大过长。2、调整索引结构 2.1 通过配置_source来压缩索引容量。减少倒排表内容 2.2 禁止启用聚合字段"doc_values" 设置为false 2.3 自定义mapping结构,针对每个字段配置数据类型、是否参与检索、是否分词及分词类型 2.4 根据实景情况设置分...原创 2018-09-04 18:35:31 · 643 阅读 · 2 评论 -
启动kibana后关闭shell窗口后kibana自动关闭
本篇文章主要介绍了”启动kibana后关闭shell窗口后kibana自动关闭的解决办法”,主要涉及到启动kibana后关闭shell窗口后kibana自动关闭的解决办法方面的内容,对于启动kibana后关闭shell窗口后kibana自动关闭的解决办法感兴趣的同学可以参考一下。后台启动kibana(加上&) kibana-4.5.2-linux-x64/bin/kibana &am...转载 2018-08-13 02:47:10 · 570 阅读 · 0 评论 -
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
错误:max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]解决办法:将当前用户的软硬限制调大。找到文件 /etc/security/limits.conf,编辑,在文件的最后追加如下配置:es soft nofile 65535es har...转载 2018-08-11 18:56:33 · 20922 阅读 · 3 评论 -
Ubuntu elasticsearch max virtual memory areas vm.max_map_count [65530] is too low, increase to at le
具体错误信息如下:jiankunking@ubuntu:~/software/elasticsearch$ ./bin/elasticsearch[2017-03-23T18:14:05,880][INFO ][o.e.n.Node ] [] initializing ...[2017-03-23T18:14:06,151][INFO ][o.e.e.Node...转载 2018-08-11 18:45:59 · 4878 阅读 · 0 评论 -
修改ES默认分词设置
5.0之后不在支持在es配置文件中指定分词方式,需要通过配置的方式去指定,可以借助java api的方式去指定 CreateIndexRequest request = new CreateIndexRequest(indexName); request.settings(Settings.builder() .put("index.number_of...原创 2018-08-11 10:33:00 · 6956 阅读 · 2 评论 -
使用Java High Level REST Client操作elasticsearch
Java高级别REST客户端(The Java High Level REST Client)以后简称高级客户端,内部仍然是基于低级客户端。它提供了更多的API,接受请求对象作为参数并返回响应对象,由客户端自己处理编码和解码。每个API都可以同步或异步调用。 同步方法返回一个响应对象,而异步方法的名称以async后缀结尾,需要一个监听器参数,一旦收到响应或错误,就会被通知(由低级客户端管理的线...转载 2018-08-11 10:28:32 · 1932 阅读 · 0 评论 -
es常用查询语句
1、分词器查询分词结果GET _analyze?pretty{ "analyzer": "ik_max_word", "text": “今天天气不错"}2、查询某个字段在对应doc里面的真是存储的数据结构GET your_index/your_type/your_id/_termvectors?fields=your_fieldsName3、按照某个query去删除数据...原创 2018-08-14 12:59:09 · 6710 阅读 · 0 评论 -
Elasticsearch 6.3.1、Head插件 安装及配置
安装ElasticsearchElasticsearch下载地址:https://www.elastic.co/cn/downloads/elasticsearch也可以直接使用wget下载到某目录下, 本文所有下载的包都放在 /home/tools 中, 解压后移到 /home/apps目录下 wget https://artifacts.elastic.co/downloads/...转载 2018-08-09 23:13:49 · 650 阅读 · 0 评论 -
使用Hive读写ElasticSearch中的数据
ElasticSearch已经可以与YARN、Hadoop、Hive、Pig、Spark、Flume等大数据技术框架整合起来使用,尤其是在添加数据的时候,可以使用分布式任务来添加索引数据,尤其是在数据平台上,很多数据存储在Hive中,使用Hive操作ElasticSearch中的数据,将极大的方便开发人员。这里记录一下Hive与ElasticSearch整合,查询和添加数据的配置使用过程。基于Hi...转载 2018-07-04 15:09:20 · 336 阅读 · 0 评论 -
Elasticsearch Java API总汇
3.1 集群的连接3.1.1 作为Elasticsearch节点[html] view plain copy代码: import static org.elasticsearch.node.NodeBuilder.nodeBuilder; import org.elasticsearch.client.Client; imp转载 2017-04-12 15:48:47 · 1017 阅读 · 2 评论 -
es获取客户端方式
// 设置client.transport.sniff为true来使客户端去嗅探整个集群的状态,把集群中其它机器的ip地址加到客户端中, // 这样做的好处是一般你不用手动设置集群里所有集群的ip到连接客户端,它会自动帮你添加,并且自动发现新加入集群的机器。 Settings settings = ImmutableSettings.settingsBuilder(原创 2017-03-24 17:48:15 · 1936 阅读 · 0 评论 -
解析Elasticsearch的SearchRequestBuilder的query类型
分词的时机 对于ES来讲,可以对文档的内容进行分词(前提是设置了analyzed),也可以对输入的搜索词进行分词。对输入的搜索词进行分词时需要看下使用的什么类型的query。不同的query可能会对词进行分词,也可能不分词。无论是文档分词还是搜索词分词,依赖于使用的是什么分词器。分词的结果和分词规则(假设使用的是默认的standard)去掉大部分标点符号,并以此分割原原创 2017-02-21 00:08:27 · 10273 阅读 · 0 评论 -
elasticsearch client异常
WARN - NettyTransport.exceptionCaught(723) | [Korrek] exception caught on transport layer [[id: 0xf0dbd835, /192.168.1.113:60441 => /192.168.1.117:9300]], closing connectionjava.lang.NullPointerExce原创 2017-02-18 11:36:49 · 5375 阅读 · 0 评论 -
elasticsearch2.3.3以及其插件离线安装
若服务器无法访问外网,可参考以下的安装步骤。否则跳转到《elasticsearch以及其常用插件安装》。1. 安装elasticsearch 下载elasticsearch2.3.3安装包。下载地址:elasticsearch-2.3.3.tar.gz 在安装目录解压即可。 2. 安装kibana插件 下载kibana4.5.1安装包(有转载 2017-02-27 21:04:39 · 2151 阅读 · 0 评论 -
亿级规模的Elasticsearch优化实战
本文根据王卫华老师在“高可用架构”微信群所做的《Elasticsearch实战经验分享》整理而成,转发请注明出处。王卫华,百姓网资深开发工程师、架构师,具有10年+互联网从业经验,曾获得微软2002-2009 MVP荣誉称号。2008年就职百姓网,负责后端代码开发和Elasticsearch & Solr维护工作。Elasticsearch 的基本信转载 2016-09-14 11:40:33 · 1108 阅读 · 0 评论 -
动态映射
动态映射(Dynamic Mapping)当ES在文档中碰到一个以前没见过的字段时,它会利用动态映射来决定该字段的类型,并自动地对该字段添加映射。有时这正是需要的行为,但有时不是。你或许不知道在以后你的文档中会添加哪些字段,但是你想要它们能够被自动地索引。或许你只是想要忽略它们。或者 - 尤其当你将ES当做主要的数据存储使用时 - 大概你会希望这些未知的字段会抛出异常来提醒转载 2016-09-14 00:33:57 · 1553 阅读 · 0 评论