ElasticSearch5.x几个为什么

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介:

为什么ES6.0要抛弃_all字段?

将所有字段都拷贝到_all显然不太合理,而且就算禁用_all字段,还是有一个bug:

在mappings里禁用_all字段:

"_all": {
    "enabled": false
}

在query_string里,以星号作为查询条件时还是会查到东西:

{
  "query": {
    "query_string": {
      "default_field": "_all",
      "query": "*"
    }
  }
}

但是在match里查询却查不到任何东西:

{
  "query": {
    "match": {
      "_all": "xx"
    }
  }
}

为什么ES的docker容器将9300端口映射出来之后就启动不起来?

以前ES客户的通过transport的方式连接ES,使用的是9300端口,走的是tcp协议。ES5.x开始尝试使用REST的方式连接ES,并且以后可能会放弃transport的方式,所以他们在做ES镜像时有意把9300隐藏掉,限制的比较紧,就算你修改ulimit,在CentOS6.7下也挺难的。

首先你得进入到容器里面把配置文件改了,commit成一个新的镜像,然后在启动的时候加上--ulimit和--ulimit nproc参数。

docker run -d --ulimit nofile=65536:131072 --ulimit nproc=2048:2048 -p 9200:9200 -p 9300:9300 -v /home/esdata:/usr/share/elasticsearch/data es:v5.5.1 -Ehttp.cors.enabled=true -Ehttp.cors.allow-origin=* -Etransport.host=0.0.0.0 -Ediscovery.zen.minimum_master_nodes=1

或者你先不映射9300端口,先让容器跑起来,然后用 docker -cp命令把ES容器里的配置文件拷贝出来,在容器外将配置文件改了,这样就不用commit一个新的镜像了。配置文件elasticsearch.yaml需要修改的地方是:

network.host: x.x.x.x (your index server ip)
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
http.cors.enabled: true
http.cors.allow-origin: "/.*/"

然后再new一个新的容器的时候可以加上-p 9300:9300。 但是即使这样,在有些情况下启动的时候还是会报错,大多数是ulimit的问题,很烦人。在ubuntu下稍微好点。

所以,使用ES docker的时候还是不要试图打开9300端口了,这个9300本来就要废弃了,所以没必要折腾了。

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
目录
相关文章
|
搜索推荐 安全 前端开发
[工具]Centos7安装ElasticSearch5.5
[工具]Centos7安装ElasticSearch5.5
108 0
|
自然语言处理 关系型数据库 Java
sphinx(二)centos7编译安装coreseek3.2
sphinx是不支持中文分词的,所以,百度上给的大多数的结果是基于sphinx内核开发的coreseek+mmseg分词的一套组合来实现中文分词+全文检索。
250 0
sphinx(二)centos7编译安装coreseek3.2
|
Linux 开发工具 git
Elasticsearch5.4.0(head/kibana/logstash)安装部署深入详解
1、ES5.4.0安装包下载地址 https://www.elastic.co/downloads/past-releases/elasticsearch-5-4-0 2、Centos6.7 Elasticsearch5.4.0安装
254 0
Elasticsearch5.4.0(head/kibana/logstash)安装部署深入详解
centos6安装ElasticSearch5.6.5错误记录
在centos6安装ES的时候遇到不少问题。这里记录日志。以后安装一定要升级centos7,别说啥稳定问题了,该升级就升级。 [1]: max file descriptors [4096] for elasticsearch process is too low, increase to at l...
1346 0
|
Web App开发 安全