全文检索(elasticsearch监控与优化)

 elasticsearch监控 

监控:

集群健康           curl 'localhost:9200/_cat/health?v'

                  curl http://localhost:9200/_cluster/health?pretty

获得节集群中的节点列表:  curl 'localhost:9200/_cat/nodes?v'

查看所有的索引:       curl 'localhost:9200/_cat/indices?v




优化:

内存优化:

                1. ES_MIN_MEM 与 ES_MAX_MEM 参数尽量设置一致,减少内存碎片被利用的概率,堆可以设置1G左右,具体调整可以根据实际机器配置。         

                2.调整触发垃圾收集的阀值,比如将gc设为75%堆大小的时候触发,这样不会影响性能。
           3.禁用Java7默认的G1收集器,前提是你的ElasticSearch跑在Java7u4以上的版本上。

       api 使用优化:

               api常用filter/query 有 term、BOOL 、AND、OR、NOT   如果可能尽量用bool ,

               查询里面 分为 term、like、match等等,如果可以尽量用term匹配,如果查询用match提高匹配级别

               查询里尽量针对具体索引列进行匹配,减小索引内全部遍历。

               elasticsearch的索引查询主要分为query与filter 两种:query与filter的主要区别在于query会对匹配结果进行评分score,而filter只会对结果做是否匹配判断,并且会缓存结果。

               所以如果是强制过滤类的操作可以直接根据fiter过滤掉,速度更快而需要对模糊的得分进行score评分,优化索引查询得分,最好做query查询