全部产品
弹性计算 会员服务 网络 安全 移动云 数加·大数据分析及展现 数加·大数据应用 管理与监控 云通信 阿里云办公 培训与认证 更多
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 智能硬件

yml配置

更新时间:2018-04-12 21:58:53

自定义CORS访问(跨域)

如果需了解更多设置,请参见Elasticsearch 官方网站,查看 HTTP 相关信息。

配置信息

  • 表格内的设置信息,是阿里云Elasticsearch 为支持 HTTP 协议,开放的自定义配置。
  • 以下字段配置仅支持静态配置,不支持热部署。如您想生效以下某项配置,请将配置信息写入 elasticsearch.yml 文件。
  • 以下配置依赖于集群网络设定。( Network settings
配置项 描述
http.cors.enabled 跨域资源共享配置项。可 启用禁用 跨域资源访问。即Elasticsearch允许接收其他域资源下的浏览器向其发送请求. 设置为 true 即可使Elasticsearch处理 OPTIONS CORS请求 。
如果发送请求中的域信息已在http.cors.allow-origin 中声明,那Elasticsearch将会在头信息中附加 Access-Control-Allow-Origin 以响应跨域请求。设置为false (默认缺省值为false)即可使Elasticsearch忽略请求头中的域信息,Elasticsearch将不会以Access-Control-Allow-Origin信息头应答,以达到禁用CORS目的。
如果客户端不支持发送附加域信息头的 pre-flight 请求,或者不校验从服务端返回的报文的头信息中的Access-Control-Allow-Origin 信息,那跨域安全访问将受到影响。
如果Elasticsearch关闭CORS支持, 则客户端只能尝试通过发送 OPTIONS请求,以了解此响应信息是否存在。
http.cors.allow-origin 域资源配置项。可设置接受来自哪些域名的请求。默认不允许且无配置。
如果在该配置值前后添加 / ,则此配置信息将被识别为正则表达式。允许您使用正则方式兼容支持HTTPHTTPs 类域请求信息。比如 /https?:\/\/localhost(:[0-9]+)?/ ,则可响应符合此正则的请求信息。 * 被认定为合法配置,可被识别为使集群支持来自 任意域名 的跨域请求,这将给Elasticsearch 集群带来 安全风险
http.cors.max-age 浏览器可发送OPTIONS 请求以获取CORS配置信息。 max-age 设置可设定浏览器对输出结果缓存保持时间。缺省设置为 1728000 秒 (20 天)。
http.cors.allow-methods 请求方法配置项。默认设置值为: OPTIONSHEADGETPOSTPUTDELETE
http.cors.allow-headers 请求头信息配置项。默认设置值为: X-Requested-With, Content-Type, Content-Length
http.cors.allow-credentials 凭证信息配置项目。是否允许响应头中返回Access-Control-Allow-Credentials 信息。设置为 true 即可返回此信息。默认设定值为 false

自定义远程索引重建(白名单)

索引重建组件支持用户在远端 Elasticsearch集群,进行重建数据索引。此特性在您所能找到的任意远程Elasticsearch版本的服务中均可工作。此设置将允许您通过从陈旧的版本服务中索引数据到当前发布版本。

  1. POST _reindex
  2. {
  3. "source": {
  4. "remote": {
  5. "host": "http://otherhost:9200",
  6. "username": "user",
  7. "password": "pass"
  8. },
  9. "index": "source",
  10. "query": {
  11. "match": {
  12. "test": "data"
  13. }
  14. }
  15. },
  16. "dest": {
  17. "index": "dest"
  18. }
  19. }
  • host必须包含 支持协议域名端口 等信息,例如https://otherhost:9200

  • usernamepassword 为可选参数,如您所请求的远端Elasticsearch服务需使用 Basic Authorization,请在请求中一并提供此参数信息。使用Basic Authorization 鉴权,请使用https 协议,否则密码信息将以文本形式进行传输。

  • 远程主机地址需在 elasticsearch.yaml中使用 reindex.remote.whitelist 属性进行声明,方可在远程使用此API功能。允许以 hostport 组合,并使用逗号分隔多个主机配置(例如:otherhost:9200, another:9200, 127.0.10.**:9200, localhost:**)。白名单不识别协议信息,只使用主机和端口信息用于实现安全策略设定。

  • 如果机器地址信息,已在白名单中设定,将不会验证和修改query,而是直接发送请求至远端服务。

注意

  • 从远端集群索引数据,不支持 手动切片自动切片。详情请参见 手动切片自动切片

批量设定

远端服务使用堆缓存索引数据,默认最大设定值为 100mb。如果远端索引中包含大文档,请您将批量设定值设置为较小参数。

以下示例批量数值为10,此为最小值:

  1. POST _reindex
  2. {
  3. "source": {
  4. "remote": {
  5. "host": "http://otherhost:9200"
  6. },
  7. "index": "source",
  8. "size": 10,
  9. "query": {
  10. "match": {
  11. "test": "data"
  12. }
  13. }
  14. },
  15. "dest": {
  16. "index": "dest"
  17. }
  18. }

超时时间

  • 使用socket_timeout ,设定socket 读取超时时间,默认超时为 30s
  • 使用connect_timeout ,设定连接超时时间,默认超时为 1s

以下示例socket 读取超时为1分钟,连接超时时间为10秒:

  1. POST _reindex
  2. {
  3. "source": {
  4. "remote": {
  5. "host": "http://otherhost:9200",
  6. "socket_timeout": "1m",
  7. "connect_timeout": "10s"
  8. },
  9. "index": "source",
  10. "query": {
  11. "match": {
  12. "test": "data"
  13. }
  14. }
  15. },
  16. "dest": {
  17. "index": "dest"
  18. }
  19. }
本文导读目录