记录一些自己在Elasticsearch开发过程的琐碎知识点

1、使用ScriptFields时,需在yml配置文件中添加配置(script.disable_dynamic: false)开启动态脚本支持,好像是从某个版本以上才需要,反正我用的1.5.2是需要这个配置的。

2、创建索引时,适当调整mapping设置,提高索引效率,如关闭副本,创建完索引后重新设置副本数量即可:NumberOfReplicas(0)

3、创建索引时,批量提交数据,可以大大提高索引效率,如:BulkIndexOperation

4、只需要查询记录条数的时候,添加参数:search_type=count  ,Nest中是SearchType.Count。只返回记录条数,不返回具体数据,提高查询性能

5、Elasticsearch配置LDAP身份认证(searchguard)后,请求时需传入用户身份信息,实现方式:

curl请求:curl -XGET -u用户名:密码  192.168.xx.xx:9200

Http请求(Nested):http://用户名:密码@192.168.xx.xx:9200

6、部署linux机器,调整系统同时打开的文件数量:ulimit -n 65536(只针对当前会话生效);
     永久生效:vi /etc/security/limits.conf

* soft nproc 65536
     * hard nproc 65536
     * soft nofile 65536
     * hard nofile 65536

7、可适当调整Elasticsearch线程池大小

官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-threadpool.html

查看当前线程池配置:http://192.168.xxx.xxx:9200/_nodes/thread_pool/

调整原因:Elasticsearch供search的默认线程池数量为1000,当出现大GC导致search请求阻塞时,会导致线程池不足,进而拒绝请求,导致前端请求堆积。异常信息如下:

      Failed to execute fetch phase
     org.elasticsearch.common.util.concurrent.EsRejectedExecutionException: rejected execution (queue capacity 1000) on
      org.elasticsearch.search.action.SearchServiceTransportAction

8、Elasticsearch各版本发版记录:https://www.elastic.co/guide/en/elasticsearch/reference/current/es-release-notes.html

关注Elasticsearch各版本升级所发生的变化,提供的新功能等

9、使用GeoPoint地理检索时,赋值时需注意,Latitude代表纬度,Longitude代表经度,百度地图中获取到的坐标一般是(经度,纬度),传入值错误的话,在1.5.2版本中系统没有报错,未做经度和纬度值的有效性校验,在ES2.x版本,默认会做数据校验,经度有效数据范围为[-180,180],纬度有效数据范围为[-90,90]

基于Elasticsearch开发时的注意事项备忘的更多相关文章

  1. 基于Prism.Windows的UWP开发备忘

    以前做UWP开发都是使用MvvmLight,主要是简单易上手,同时也写了很多MvvmLight的开发系列文章: UWP开发必备以及常用知识点总结 UWP开发之Mvvmlight实践九:基于MVVM的项 ...

  2. 基于.net开发chrome核心浏览器

    本文转载自:http://www.cnblogs.com/liulun/archive/2013/04/20/3031502.html 一: 上一篇的链接: 基于.net开发chrome核心浏览器[一 ...

  3. Socket网络通讯开发总结之:Java 与 C进行Socket通讯 + [备忘] Java和C之间的通讯

    Socket网络通讯开发总结之:Java 与 C进行Socket通讯 http://blog.sina.com.cn/s/blog_55934df80100i55l.html (2010-04-08 ...

  4. 基于.net开发chrome核心浏览器【二】

    原文:基于.net开发chrome核心浏览器[二] 一: 上一篇的链接: 基于.net开发chrome核心浏览器[一] 二: 相关资源介绍: chrome Frame: 让IE有一颗chrome的心, ...

  5. [原创]基于SpringAOP开发的方法调用链分析框架

    新人熟悉项目必备工具!基于SpringAOP开发的一款方法调用链分析插件,简单到只需要一个注解,异步非阻塞,完美嵌入Spring Cloud.Dubbo项目!再也不用担心搞不懂项目! 很多新人进入一家 ...

  6. ElasticSearch 启动时加载 Analyzer 源码分析

    ElasticSearch 启动时加载 Analyzer 源码分析 本文介绍 ElasticSearch启动时如何创建.加载Analyzer,主要的参考资料是Lucene中关于Analyzer官方文档 ...

  7. 基于线程开发一个FTP服务器

    一,项目题目:基于线程开发一个FTP服务器 二,项目要求: 基本要求: 1.用户加密认证   2.允许同时多用户登录   3.每个用户有自己的家目录 ,且只能访问自己的家目录   4.对用户进行磁盘配 ...

  8. Elasticsearch snapshot 备份的使用方法 【备忘】

    常见的数据库都会提供备份的机制,以解决在数据库无法使用的情况下,可以开启新的实例,然后通过备份来恢复数据减少损失.虽然 Elasticsearch 有良好的容灾性,但由于以下原因,其依然需要备份机制. ...

  9. 基于uFUN开发板的心率计(二)动态阈值算法获取心率值

    前言 上一篇文章:基于uFUN开发板的心率计(一)DMA方式获取传感器数据,介绍了如何获取PulseSensor心率传感器的电压值,并对硬件电路进行了计算分析.心率计,重要的是要获取到心率值,本篇文章 ...

随机推荐

  1. Comparing cards

    For built-in types, there are conditional operators (<, >, ==, etc.) that compare values and d ...

  2. NOIP2003 传染病防治

    描述 研究表明,这种传染病的传播具有两种很特殊的性质:第一是它的传播途径是树型的,一个人X只可能被某个特定的人Y感染,只要Y不得病,或者是XY之间的传播途径被切断,则X就不会得病. 第二是,这种疾病的 ...

  3. Android中各组件的生命周期

    1.Activity生命周期图 二.activity三种状态 (1)active:当Activity运行在屏幕前台(处于当前任务活动栈的最上面),此时它获取了焦点能响应用户的操作,属于活动状态,同一个 ...

  4. Linux 之dhcp服务搭建

    DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议 dhcp服务器端监控端口67 涉及的配置文件:/etc/dhcp/dhcpd ...

  5. 根据JSON对象动态加载表格--大数据量

    EasyUI的DataGrid加载数据的时候,如果列数过多(300列以上),数据渲染及其缓慢. JSON对象格式: 1:rowno 2:title 3:colspan 4:rowspan 5:back ...

  6. Javascrpt

    HTML HTML概述: HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页面标准语言(标记).相当于定义统一的一套规则,大家都来遵守他 ...

  7. 介绍一点.NET反编译的知识

    反编译是我们理解.NET内部实现的一种良好的手段. 程序编译时 Test.exe是IL代码.我们可以通过一些工具,来查看这些IL代码. 一模一样? 理论上来说,一模一样的反编译是不存在的.原因有以下3 ...

  8. sublime搭建Java编译平台及编码问题

    Sublime自带Java编译功能,当时只能编译不能运行,我们做一下小小的修改就可以让sublime一步完成编译运行的功能,实现sublime搭建Java编译平台. 使用Ctrl + B 编译时,所编 ...

  9. 软件工程 speedsnail 第二次冲刺1次

    20150518 完成任务:划线第一天,能画出一天连续的红线: 遇到问题: 问题1 线是弯曲的 解决1 没有解决 明日任务: 将线画直

  10. C# 多线程运用

    没有用过多线程,所以没有过多的了解操作原理以及怎么编写多线程 后来才只知道将一个传入的集合分别拆开为N个集合来进行使用 //分线程执行 public static void OperateThread ...