ES的搭建及简单操作

简介:

成功界面图:

wKioL1hCV_CyLhpWAAE_FX07Rm0881.png-wh_50

使用ES注意事项:

1、es版本2.x以上需要JDK 1.8以上

2、运行es不能使用root用来来运行

3、es目录必须指定一个普通用户和组(授权)

4、es对内存和CPU的消耗比较高

5、es版本在5.X以上系统要求至少要能够开启2048个线程才可以启动,系统版本使用CENTOS7才可以

6、es使用的端口看开放iptables:9200,9300等

7、es配置其他插件实现资源等可视化监控

8、es的版本和插件之间版本要匹配

9、es集群配置,第一节点配置好scp到其他节点即可(修改配置文件)

一、es启动

1、下载es包.2.4.2版本、解压到/usr/local/并命名为elasticsearch

2、修改配置文件

cluster.name: my-application

node.name: mycat

path.data: /home/elastic/

path.logs: /home/elastic/logs

network.host: 192.168.1.114

http.port: 9200

discovery.zen.ping.unicast.hosts: ["192.168.1.114"]

3、添加用户

useradd elastic

4、给/usr/local/elasticsearch授权

chown -R elastic.elastic /usr/local/elasticsearch

5、切换用户启动elastcisearch

su elastic

/usr/local/elasticsearch/bin/elasticsearch &

6、验证服务

登陆http://192.168.1.114:9200/

{

  "name" : "mycat",

  "cluster_name" : "my-application",

  "cluster_uuid" : "nwPLOaaEQrGrMXsQpL61sg",

  "version" : {

    "number" : "2.4.1",

    "build_hash" : "c67dc32e24162035d18d6fe1e952c4cbcbe79d16",

    "build_timestamp" : "2016-09-27T18:57:55Z",

    "build_snapshot" : false,

    "lucene_version" : "5.5.2"

  },

  "tagline" : "You Know, for Search"

}

启动OK~~!

8、安装kibana+sence可视化报表

1、修改kibana的配置文件/usr/local/kibana/config/kibana.yml

server.port: 5601#kibana使用的服务端口

server.host: "192.168.1.114"#kibana实例主机

elasticsearch.url: "http://192.168.1.114:9200" ##指向elasticsearch实例,监控es服务的状态,关闭服务先关闭kibana服务先

2、启动kibana,这个可以在root模式下启动

/usr/local/kibana/bin/kibana &

3、加载sence插件

/usr/local/kibana/bin/kibana plugin --install elastic/sense

3、通过http://192.168.1.114:5601就可以可视化页面

8、安装管理和监控工具,使用marvel插件,这个插件是收费的,免费试用一个月。

Marvel基础功能是免费的 但是下载的是全功能版本 需要后续申请基础功能的license

Marvel是Elasticsearch的管理和监控工具

##在/usr/local/elasticsearch/目录下,安装marvel的许可和代理,用root来执行

Step 1: bin/plugin install license

        bin/plugin install marvel-agent

#cd /usr/local/kibana/ #把marvel服务安装到kibana里

Step 2: Install Marvel into Kibanabin/kibana plugin --install elasticsearch/marvel/latest

#重启es和kibana服务

Step 3: bin/elasticsearch

        bin/kibana

Step 4: http://localhost:5601

Step 5:配置index pattern

修改index name or pattern里值为:.marvel-*(第一次的时候这么配置,后期使用后又索引了,写索引名字即可)

wKioL1hCWE6zXymCAADKRS9RPlU768.jpg-wh_50

至此可以登录kibana页面,可以看到kibana\marvel\sence都集成在页面也里了。


默认安装的是带有安全模块的30天试用版 https://www.elastic.co/guide/en/marvel/current/license-management.html

如果只使用marvel的监控模块 需要更换license为Basic License

register for a Basic license 

 安装license

curl -XPUT -u admin 'http://<host>:<port>/_license?acknowledge=true' -d @license.json ### @后面是license文件, 安装后不需要重启ES和kibana

查看license是否更新成功

curl -XGET -u admin:password 'http://<host>:<port>/_license'


全文索引的设置:

1、下载包、解压


https://www.elastic.co/downloads/past-releases/logstash-2-4-1

2、添加配置文件目录

mkdir /usr/local/logstash/conf

touch /usr/local/logstash/conf/logstash.conf

input {

  jdbc {

    jdbc_driver_library => "/opt/logstash/mysql-connector-java-5.1.39/mysql-connector-java-5.1.39-bin.jar" #这个包要在logstash服务器上存在包

    jdbc_driver_class => "com.mysql.jdbc.Driver"

    jdbc_connection_string => "jdbc:mysql://host:3306/database" #数据库信息

    jdbc_user => ""

    jdbc_password => ""

#    schedule => "0 1 * * *"

    statement => "select * from aaa"

   clean_run => true

 }

 }

output

{

 elasticsearch {

   hosts => ["host:9200"]

   index => "index" #自定义

   document_type => "index" #自定义

   document_id => "%{id}"       ###设置ID为ES主键,当数据库有update操作时,原记录会被覆盖

}

}

####

input {

  jdbc {

    jdbc_driver_library => "/usr/local/mysql-connector-java-5.1.40-bin.jar"

    jdbc_driver_class => "com.mysql.jdbc.Driver"

    jdbc_connection_string => "jdbc:mysql://192.168.1.114:3306/test"

    jdbc_user => "dlan"

    jdbc_password => "root123"

    schedule => "0 1 * * *"

    statement => "select * from aaa"

    jdbc_paging_enabled =>"true"

    clean_run => "true"

 }

 }

output

{

 elasticsearch {

   hosts => ["192.168.1.114:9200"]

   index => "index"

   document_type => "index"

   document_id => "%{id}"

}

}

###

3、启动logstash

/usr/local/logstash/bin/logstash -f /usr/local/logstash/conf/logstash.conf &

4、然后再kibana里面sense

Server的localhost改成es的ip地址

GET /index_mycat/index_mycat/_search#返回所有的数据

GET /index_mycat/index_mycat/_search

{

  "query": {

    "term": {

      "id": {

        "value": "7"

      }

    }

  }

}#查看某个值


GET /index_mycat/index_mycat/_search

{

  "query": {

    "terms": {

      "id": [

        "1",

        "2",

        "3"

        

      ]

    }

  }

}#查询一个ID的多个值


ES写入和查询数据

POST /logstach20161203/testlog

{


  "date":"111111111",


  "user":"chen",


  "mesg":"first message"


}



GET _cat/indices


GET /logstach20161203/testlog/AVjCxeOOVWWuc1n8AVQu/_source#返回原始的数据,根据hash取回来的值

GET /logstach20161203/testlog/AVjCxeOOVWWuc1n8AVQu?fields=user,mesg

#返回多个值

GET /logstach20161203/testlog/_search/

{

  "query": {

    "term": {

      "user": {

        "value": "chen"

      }

    }

  }

}

ES数据更新的方法:

一种为全量提交,即根据_id再发送一次写请求

POST /logstach20161203/testlog/AVjCxeOOVWWuc1n8AVQu

{


  "date":"111111112",


  "user":"chen",


  "mesg":"first message1"


}

另外一种是局部更新

POST /logstach20161203/testlog/AVjCxeOOVWWuc1n8AVQu/_update

{"doc":{"user":"aaa1a"}}

curl -XPOST 'http://192.168.1.114:9200/logstach20161203/testlog/AVjCxeOOVWWuc1n8AVQu/_update' -d '{"doc":{"user":"aaaa"}}'


ES的查询

GET /logstach20161203/testlog/_search?q=aaa1a


GET /logstach20161203/testlog/_search?q=user:"aaa1a"


?q=后写写就是querystring语法

1、全文检索:直接写搜索的单词,如上例中的?? first?;

2、单字段的全文检索:在搜索单词之前加上字段名和冒号,比如如果知道单词

first?肯定出现在?mesg?字段,可以写作?? mesg:first?;

3、单字段的精确检索:在搜索单词前后加双引号,比如?? user:"chenlin7"?;

4、多个检索条件的组合:可以使用?? NOT?,?? AND??和??OR??来组合检索,注意必须是大写。比如?? user:("chenlin7"?OR?"chenlin")?AND?NOT

mesg:first?;

5、字段是否存在:? _exists_:user??表示要求?user?字段存在,? _missing_:user??表示要求?user?字段不存在;

6、通配符:用?? ???表示单字母,? *??表示任意个字母。比如??fir?t?mess*?;

7、正则:需要比通配符更复杂一点的表达式,可以使用正则。比如

? mesg:/mes{2}ages?/?。注意?ES?中正则性能很差,而且支持的功能也不是

特别强大,尽量不要使用。ES?支持的正则语法

见:https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-

regexp-query.html#regexp-syntax;

8、近似搜索:用?? ~??表示搜索单词可能有一两个字母写的不对,请?ES?按照相似

9、度返回结果。比如?? frist~?;

10、范围搜索:对数值和时间,ES?都可以使用范围搜索,比

如:? rtt:>300?,? date:["now-6h"?TO?"now"}??等。其中,?[]??表示端点

数值包含在范围内,? {}??表示端点数值不包含在范围内;




本文转自 DBAspace 51CTO博客,原文链接:http://blog.51cto.com/dbaspace/1879106
相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。 &nbsp;
相关文章
|
1月前
|
机器学习/深度学习 人工智能 安全
从模型、Agent 到 MCP:这个 10.7k Star 项目,把 AI 工程学习路线重新铺了一遍
`ai-engineering-from-scratch` 是一套硬核AI工程实战路线:20阶段、435课、320小时,从数学原理手写实现Tokenizer/Attention/Backprop,到LLM微调、RAG、Agent、MCP及生产部署,每课产出可集成的Prompt/Skill/Agent等工程资产,专为构建可验证、可复现、可维护的AI系统而设计。
|
人工智能 关系型数据库 MySQL
轻松搭建AI知识问答系统,阿里云PolarDB MCP深度实践
无论是PolarDB MySQL兼容MySQL语法的SQL执行功能,还是其特有的OLAP分析与AI能力,通过MCP协议向LLM开放接口后,显著降低了用户使用门槛,更为未来基于DB-Agent的智能体开发奠定了技术基础
|
11月前
|
SQL 存储 JSON
Apache Doris 2.1.10 版本正式发布
亲爱的社区小伙伴们,Apache Doris 2.1.10 版本已正式发布。2.1.10 版本对湖仓一体、半结构化数据类型、查询优化器、执行引擎、存储管理进行了若干改进优化。欢迎大家下载使用。
493 5
|
人工智能 自然语言处理 API
AI-Compass Agent智能体技术生态:整合AutoGPT、LangGraph、CrewAI等前沿框架,构建自主决策工具调用的AI智能体系统
AI-Compass Agent智能体技术生态:整合AutoGPT、LangGraph、CrewAI等前沿框架,构建自主决策工具调用的AI智能体系统
|
Windows
一枚弃子打破80年黎曼猜想纪录!菲尔兹奖得主MIT大拿联手
【8月更文挑战第2天】菲尔兹奖得主詹姆斯·梅纳德与MIT数学家合作,在arXiv发布关于黎曼猜想的新论文。该猜想关联质数分布,自19世纪起挑战数学界。研究聚焦狄利克雷多项式的特性,证明其值可达N的3/4次方,推进了对黎曼ζ函数的理解。此外,论文提出了零点密度的新估计及质数短区间分布的渐近公式,为密码学等领域带来潜在影响。值得注意的是,这些成果仍待同行评审确认,并非黎曼猜想的最终解答。
727 7
|
SQL 关系型数据库 MySQL
一文搞懂数据库中的“锁”(图文详解)
数据库锁机制包括全局锁、表级锁和行级锁,用于管理并发访问数据时的一致性和有效性。全局锁锁定整个数据库实例,确保数据备份时的一致性,但可能导致长时间业务停摆。表级锁分为读锁和写锁,读锁允许多个并发读,写锁阻止其他读写。元数据锁(MDL)自动控制,防止DML和DDL冲突。行级锁是最细粒度的锁,分共享锁(读)和排他锁(写),防止行级别的并发冲突。InnoDB还使用意向锁和间隙锁/临键锁防止幻读,提高并发性能。
3436 2
一文搞懂数据库中的“锁”(图文详解)
|
资源调度 JavaScript 前端开发
vue-element-admin 综合开发一:搭建环境:vue-cli创建项目,整合element、vue-router
这篇文章是关于如何使用vue-cli搭建vue环境,并整合Element UI和vue-router来开发一个基础的前端管理后台界面。
737 0
vue-element-admin 综合开发一:搭建环境:vue-cli创建项目,整合element、vue-router
|
Java Maven Windows
关于win11系统中环境变量path的显示和编辑格式变成一行的问题
关于win11系统中环境变量path的显示和编辑格式变成一行的问题
2976 0
关于win11系统中环境变量path的显示和编辑格式变成一行的问题
|
人工智能 自然语言处理 搜索推荐
文本向量化模型新突破——acge_text_embedding勇夺C-MTEB榜首
在人工智能的浪潮中,大型语言模型(LLM)无疑是最引人注目的潮头。在支撑这些大型语言模型应用落地方面,文本向量化模型(Embedding Model)的重要性也不言而喻。 近期,我在浏览huggingface发现,国产自研文本向量化模型acge_text_embedding(以下简称“acge模型”)已经在业界权威的中文语义向量评测基准C-MTEB(Chinese Massive Text Embedding Benchmark)中获得了第一名。
文本向量化模型新突破——acge_text_embedding勇夺C-MTEB榜首
|
人工智能 API 数据安全/隐私保护
云效+SAE,5分钟搞定一个AI 应用的开发和部署
本实验将带你体验云效应用交付平台AppStack+Serverless 应用交付引擎 SAE,从应用视角,完成一个AI聊天助手的高效交付。
1204 0

热门文章

最新文章