操作Document文档
利用客户端操作Document文档数据
1.创建一个文档(创建数据的过程,向表中去添加数据)
请求方式:Post 请求地址:es所在IP:9200/索引库/Type/文档ID(可给可不给,代表唯一标识,如果不给则会生成默认的字符串)
请求体
{
"id":2,
"title":"Lucene是apache软件基金会4 jakarta项目组的一个子项目",
"content":"Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的"
}
2 修改文档数据:根据文档ID修改数据
请求方式:Post 请求地址:es所在IP:9200/索引库/Type/修改的文档ID
请求体
{
"id":2,
"title":"[修改]Lucene是apache软件基金会4 jakarta项目组的一个子项目",
"content":"[修改]Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的"
}
3 删除文档数据:根据文档ID删除数据
请求方式:DELETE 请求地址:es所在IP:9200/索引库/Type/文档ID
文档数据的查询
1 根据文档ID查询文档数据
请求方式给GET 请求地址:es所在IP:9200/查询的索引库/查询的类型/查询的文档ID
2 根据关键词查询文档数据
请求方式给GET 请求地址:es所在IP:9200/查询的索引库/查询的类型/_search
请求体当中指定要查询那个域当中的哪个关键词
{ "query":{ "term":{ "content":"java" } } }
3 QueryString,将搜索内容分词后再查询
请求方式给GET 请求地址:es所在IP:9200/查询的索引库/查询的类型/_search
请求体当中指定要查询那个域当中的一段话,会将查询的条件先分词再查询
{ "query":{ "query_string":{ "default_field":"title", "query":"ElasticSearch" } } }
分析器
1 查看标准分析器的分词结果
http://127.0.0.1:9200/_analyze?analyzer=standard&text=它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引
2 第三方IKAnalyzer分析器
2.1 ES集成IK分析器
步骤一:将IK分析器压缩包解压
步骤二:将解压后的文件夹复制到ES解压目录的plugins
步骤三: 重启ES
注意:文件路径不要带空格
2.2 使用IK分析器进行分析
ik_smart 最小分析
http://127.0.0.1:9200/_analyze?analyzer=ik_smart&text=它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引
ik_max_word 最细分析
http://127.0.0.1:9200/_analyze?analyzer=ik_max_word&text=它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引
2.3 创建Type时,指定ik
{ "mappings":{ "hello":{ "properties":{ "id":{ "type":"long", "store":true, "index":"not_analyzed" }, "title":{ "type":"text", "store":true, "index":"analyzed", "analyzer":"ik_max_word" }, "cpontent":{ "type":"text", "store":true, "index":"analyzed", "analyzer":"ik_max_word" } } } } }
4ES集群环境
环境选择:
1.方案一:准备三台机器 每一台机器一个节点
2.方案二:准备一台机器 启动三个节点,用端口号区分即可
3.ES启动依赖于JVM环境 每一个节点默认使用2G内存,可以找到配置文件jvm配置文件修改内存
4.搭建ES集群时,保证每一个节点都是没有数据的
环境搭建:
步骤一:准备一个ES节点,加入基本配置:跨域 加入IK分析器
步骤二:配置节点的es.yml配置文件
#节点1的配置信息:
#集群名称,保证唯一 每一个节点都是相同的集群名称
cluster.name: my-elasticsearch
#节点名称,必须不一样
node.name: node-1
#必须为本机的ip地址
network.host: 127.0.0.1
#服务端口号,在同一机器下必须不一样
http.port: 9200
#集群间通信端口号,在同一机器下必须不一样
transport.tcp.port: 9300
#设置集群自动发现机器ip集合
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300","127.0.0.1:9301","127.0.0.1:9302"]
步骤三:复制刚才的节点环境,更改文件夹名称以及es.yml配置文件
##集群环境
#节点1的配置信息:
#集群名称,保证唯一
cluster.name: my-elasticsearch
#节点名称,必须不一样
node.name: node-2
#必须为本机的ip地址
network.host: 127.0.0.1
#服务端口号,在同一机器下必须不一样
http.port: 9201
#集群间通信端口号,在同一机器下必须不一样
transport.tcp.port: 9301
#设置集群自动发现机器ip集合
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300","127.0.0.1:9301","127.0.0.1:9302"]
步骤四:复制刚才的节点环境,更改文件夹名称以及es.yml配置文件
##集群环境
#节点1的配置信息:
#集群名称,保证唯一
cluster.name: my-elasticsearch
#节点名称,必须不一样
node.name: node-3
#必须为本机的ip地址
network.host: 127.0.0.1
#服务端口号,在同一机器下必须不一样
http.port: 9202
#集群间通信端口号,在同一机器下必须不一样
transport.tcp.port: 9302
#设置集群自动发现机器ip集合
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300","127.0.0.1:9301","127.0.0.1:9302"]
之后将集群依次启动