lucene

解決 Elasticsearch 使用 Java High Level REST Client 時出現 NoClassDefFoundError 錯誤

China☆狼群 提交于 2020-05-02 14:21:17
原文地址: https://medium.com/@hsiehjenhsuan/解決-elasticsearch-使用-java-high-level-rest-client-時出現-noclassdeffounderror-錯誤-10077fcda6b3 因為工作關係需要用到 Elasticsearch,評估過後決定使用 high-level REST client 來進行開發,但在環境建置上卻出現了一些問題 錯誤訊息如下: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'restHighLevelClient' defined in class path resource [org/springframework/boot/autoconfigure/elasticsearch/rest/RestClientAutoConfiguration$RestHighLevelClientConfiguration.class]: Post-processing of merged bean definition failed; nested exception is java.lang.IllegalStateException: Failed to

Elasticsearch.net项目实战

孤街浪徒 提交于 2020-04-28 03:00:48
原文: Elasticsearch.net项目实战 elasticsearch.net项目实战 目录 Elasticsearch+kibana 环境搭建 windows 10环境配置 安装Elasticsearch head安装(非必需) 安装kibana 基本概念 Index Type Document DSL的基本使用 增加 修改 查询 删除 Elasticsearch .Net Low level client基本使用 项目实战 总结 参考 Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎。无论在开源还是专有领域,Lucene可以被认为是迄今为止最 先进、性能最好的、功能最全的搜索引擎库。 一说到全文搜索,lucene久负盛名。早年间,因为项目需要,接触过一个叫盘古分词的开源项目,借助其中的分词实现了分词搜索的功能。而盘古分词就是lucence的.NET版本。据说这个开源项目已经恢复更新并支持. NET Core,有兴趣的童鞋可以去围观一下( https://github.com/LonghronShen/Lucene.Net.Analysis.PanGu/tree/netcore2.0 )。 我想很多童鞋都听过ELK,ELK是Elasticsearch、Logstash、Kibana。正好公司运维同事引入了这样一套体系

Key-Value Store Indexer(Lily HBase Indexer) 小型采坑

余生颓废 提交于 2020-04-27 22:55:31
环境: Cloudera Express 5.12.1 JDK 1.8.0_92 CentOS 7 步骤1:数据导入到Hbase中(非正题,跳过) hbase中表为allDoc,两个Family:fulltext,fileInfo fulltext中就一列:fulltext fileInfo中有如下几列serialNumber,verdictType,hashCode,fileName 步骤2:生成实体配置文件(我这里用的root账户) solrctl instancedir --create /root/config/    步骤3:配置/root/config/conf/schema.xml,增加分词器 <fields></fields>下增加字段,其中id为hbase的row_key,_version_字段必须有,否则报错,我这里只加了fulltext和serialnumber,这里的是solr中的schema <field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" /> <field name="serialnumber" type="string" indexed="true" stored="true" required="true"

【原】无脑操作:ElasticSearch学习笔记(01)

你说的曾经没有我的故事 提交于 2020-04-25 17:06:14
开篇来自于经典的“保安的哲学三问”(你是谁,在哪儿,要干嘛) 问题一、ElasticSearch是什么?有什么用处? 答:截至2018年12月28日,从ElasticSearch官网( https://www.elastic.co/cn/products )上,得知:ElasticSearch是基于 JSON 的分布式搜索和分析引擎,专为实现水平扩展、高可靠性和管理便捷性而设计。 用于搜索、分析和存储您的数据。 问题二、ElasticSearch的由来? 答:大约在2010年,一个叫Shay Banon的待业工程师跟随他的新婚妻子来到伦敦,他的妻子想在伦敦学习做一名厨师。而他在伦敦寻找工作的期间,接触到了Lucene的早期版本,他想为自己的妻子开发一个方便搜索菜谱的应用。直接使用Lucene构建搜索会有很多的坑以及重复性的工作,所以Shay便在Lucene的基础上不断进行抽象来让Java程序嵌入搜索变得更容易一些,经过一段时间的打磨,就诞生了他的第一个开源作品,他给自己的这个作品起了个名字,叫 “Compass”,中文即“指南针”的意思。之后,Shay找到了一份新工作,新工作是处在一个高性能分布式的开发环境中。他在工作中渐渐发现,越来越需要一个易用的高性能、实时、分布式搜索服务,于是他决定重写Compass,将它从一个库打造成了一个独立的server

Tomcat 8.0 的 JVM、GC 调优(基于Oracle JDK 8)

╄→尐↘猪︶ㄣ 提交于 2020-04-25 08:09:21
[TOC] Tomcat容器是运行在JVM上的, 其默认内存一般都很小(物理内存的1/64), 在实际生产环境中, 若不配置则会极大浪费服务器资源, 影像系统的性能. 可以通过调整JVM启动参数, 使得Tomcat拥有更好的性能. 对于JVM的优化主要有两个方面: JVM内存调优 和 垃圾收集策略调优 , 本片博文是在Oracle JDK 8之上的测试, 特此说明. 1 JVM内存调优 1.1 Tomcat占用的内存 Tomcat 的运行内存 = Xmx(初始内存大小) + Perm Generation(JDK 7中的永久代大小) + Java应用创建的线程数 * 1MB. Java 应用每创建一个线程, JVM 进程的内存中就会创建一个 Thread 对象, 同时也会在操作系统中创建一个真正的物理线程(参考JVM规范), 操作系统会在 Tomcat 的空闲内存中创建这个物理线程, 而不是在 JVM 的 Xmx 堆内存中创建. 在 JDK 1.4中, 默认的栈大小是256KB/线程, 但自 JDK 5(为了推广的方便, JDK 后续版本不再是1.x命名)开始, 默认的栈大小变为1M/线程. 举例: 如果系统剩余内存为400M, 则Java应用最多能创建400个可用线程. **结论: 要想创建更多的线程, 必须减少分配给JVM的最大内存. ** 1.2 内存配置相关参数

elasticsearch7.0安装及配置优化

不羁的心 提交于 2020-04-24 20:31:24
简单讲ES开箱即用,不用任何配置也能玩转搜索引擎;以下内容是根据易企秀线上实际使用场景进行的安装和配置,支持冷热数据分离 1、安装 Linux 环境下载安装包 curl -L -O https:/ /artifacts.elastic.co/downloads /elasticsearch/elasticsearch- 7.0. 0-linux-x86_64.tar.gz 解压 tar -xvf elasticsearch-7 .0 .0-linux-x86_64 .tar .gz 因es7.0自带了java环境 ,所以不需要再单独下载JDK,进入bin目录直接启动即可 ./elasticsearch -d # -d 意思是后台运行,需要注意的是es要求非Root用户启动 2、安装IK 下载 wget https:/ /github.com/medcl /elasticsearch-analysis-ik/releases /download/v7. 0. 0/elasticsearch-analysis-ik- 7.0. 0.zip 在plugins目录下创建ik目录,并将elasticsearch-analysis-ik-7.0.0.zip解压到该目录 mkdir plugins/ik unzip elasticsearch-analysis-ik-7.0.0.zip ik

2020最新Java工程师面试题-Elasticsearch 面试篇(附答案)

戏子无情 提交于 2020-04-23 12:53:51
1、elasticsearch 了解多少,说说你们公司 es 的集群架构,索 引数据大小,分片有多少,以及一些调优手段 。 **面试官:**想了解应聘者之前公司接触的 ES 使用场景、规模,有没有做过比较大 规模的索引设计、规划、调优。 解答: (文末可领取更多面试资料) 如实结合自己的实践场景回答即可。 **比如:**ES 集群架构 13 个节点,索引根据通道不同共 20+索引,根据日期,每日 递增 20+,索引:10 分片,每日递增 1 亿+数据, 每个通道每天索引大小控制:150GB 之内。 仅索引层面调优手段: 1.1、设计阶段调优 1、根据业务增量需求,采取基于日期模板创建索引,通过 roll over API 滚动索 引; 2、使用别名进行索引管理; 3、每天凌晨定时对索引做 force_merge 操作,以释放空间; 4、采取冷热分离机制,热数据存储到 SSD,提高检索效率;冷数据定期进行 shrink 操作,以缩减存储; 5、采取 curator 进行索引的生命周期管理; 6、仅针对需要分词的字段,合理的设置分词器; 7、Mapping 阶段充分结合各个字段的属性,是否需要检索、是否需要存储等。…….. 1.2、写入调优 1、写入前副本数设置为 0; 2、写入前关闭 refresh_interval 设置为-1,禁用刷新机制; 3、写入过程中:采取 bulk

数据结构与算法->

こ雲淡風輕ζ 提交于 2020-04-22 06:27:01
查询算法一般有哪些? 暴力:遍历 for 二分:条件为有序; 哈希:最高效;o(1) 索引:搜索引擎, lucene,solr bfs&dfs:图论里面的遍历 平衡树: B+树; B-tree: 红黑树: 二叉搜索树: -------------------------------------------------------------------------------------------------- 二分法转化为数据结构就是二叉查找树 左节点<根节点<右节点 时间复杂度就是树的深度 二分 :logn---->2^x=n(树的高度)-->x=log2^n---------->logn AVL树: 平衡二叉树 (追求极致的平衡,理想状态) 红黑树 :底层的数据结构就是(特殊的二叉树)二叉查找树 数据结构的推算:链表(暴力)->二叉树->二叉查找树->特殊的二叉查找树(自平衡的二叉查找树) ---------------------------------------------------------------------------------------------------------------- 红黑树: 红黑树的性质 : 1.每个节点红色或者黑色; 2.不可能有连载一起的红色节点(黑色可以) 3.根节点都是黑色root,没有父节点的节点为根节点 4

十九种Elasticsearch字符串搜索方式终极介绍

你说的曾经没有我的故事 提交于 2020-04-19 02:32:26
原文: 十九种Elasticsearch字符串搜索方式终极介绍 前言 刚开始接触Elasticsearch的时候被Elasticsearch的搜索功能搞得晕头转向,每次想在Kibana里面查询某个字段的时候,查出来的结果经常不是自己想要的,然而又不知道问题出在了哪里。出现这个问题归根结底是因为对于Elasticsearch的底层索引原理以及各个查询搜索方式的不了解,在Elasticsearch中仅仅字符串相关的查询就有19个之多,如果不弄清楚查询语句的工作方式,应用可能就不会按照我们预想的方式运作。这篇文章就详细介绍了Elasticsearch的19种搜索方式及其原理,老板再也不用担心我用错搜索语句啦! 简介 Elasticsearch为所有类型的数据提供实时搜索和分析,不管数据是结构化文本还是非结构化文本、数字数据或地理空间数据,都能保证在支持快速搜索的前提下对数据进行高效的存储和索引。用户不仅可以进行简单的数据检索,还可以聚合信息来发现数据中的趋势和模式。 搜索是Elasticsearch系统中最重要的一个功能,它支持结构化查询、全文查询以及结合二者的复杂查询。结构化查询有点像SQL查询,可以对特定的字段进行筛选,然后按照特定的字段进行排序得到结果。全文查询会根据查询字符串寻找相关的文档,并且按照相关性排序。 Elasticsearch内包含很多种查询类型

Hibernate search sorting with collation

对着背影说爱祢 提交于 2020-04-18 12:34:16
问题 I upgraded Hibernate search from version - 4.3.0.Final to the latest stable version - 5.4.12.Final. All is good except sorting norwegian words. In the old version of hibernate there was SortField with locale in the constructor: /** Creates a sort, possibly in reverse, by terms in the given field sorted * according to the given locale. * @param field Name of field to sort by, cannot be <code>null</code>. * @param locale Locale of values in the field. */ public SortField (String field, Locale