ElasticSearch的基本集成和使用

项目中用的es,记录一下集成过程和遇到的问题,如果有问题,请不吝赐教。

一,集成

引入包只要这些就足够:

        
            org.springframework.boot
            spring-boot-starter-data-elasticsearch
        
        
            org.elasticsearch.plugin
            transport-netty3-client
            5.6.14
        

这里比较大的坑就是版本兼容的问题,刚开始使用的es6.6.2,spingBoot是2.0.4启动提示依赖冲突改成这个5.6.14之后好了,新版本不要轻易尝试。

后面的java代码参考这边即可:https://blog.csdn.net/mjwwjcoder/article/details/79087269

二,关键点:

es启动监听两个端口,9300和9200
9300端口是使用tcp客户端连接使用的端口;
9200端口是通过http协议连接es使用的端口;

这就是为啥,配置文件配置的是9200,代码里却要配置9300才能连通。

三,一个比较坑的地方:

https://blog.csdn.net/qq_36390263/article/details/81348671 这个地址可以解决

http://ip***:port/"index"/_mapping/"type"/?pretty   -----单一类型

http://ip***:port/"index"/_mapping/"type"/?update_all_types--多类型,用上面的报错会提示用这个类型

就是设置fieldata=true

ElasticSearch的基本集成和使用_第1张图片

 

四 Elasticsearch设置最大返回条数

(https://www.cnblogs.com/parryyang/p/7976908.html)

  在Elasticsearch中如果需要做分页查询,我们通常使用form和size实现。form指定从有序哪一行开始,size表示从当前开始读取多少行。但是我们发现查询结果最大只能到10000,这是因为Elasticsearch中的size的默认值在index.max_result_window 中设置,并且默认值就是10000。下面我们通过Elasticsearch的API设置最大的读取行。

ElasticSearch的基本集成和使用_第2张图片

  注:Elasticsearch支持的最大值是2^31-1,也就是2147483647。

 下面我们来查看一下是否设置成功:

ElasticSearch的基本集成和使用_第3张图片

  如图,我们的设置成功。

 

参考:https://www.cnblogs.com/songxingzhu/p/10215812.html

还有一种直接运行curl命令的形式,可以在启动的es上直接生效,当时文章中也指出修改配置文件的方式5.x之后会导致启动报错,亲测curl命令是可行的,命令是:

curl -H "Content-Type: application/json" -XPUT 'http://127.0.0.1:9200/_all/_settings?preserve_existing=true' -d '{
  "index.max_result_window" : "1000000000"
}'
或者(命令中只修改一下ip,index不要修改)
curl -H "Content-Type: application/json" -XPUT http://127.0.0.1:9200/_settings -d '{ "index" : { "max_result_window" : 100000000}}'
又找到一种可以对规则index设置的方案:
curl -XPUT 127.0.0.1:9200/index-*/_settings -d '{ "index.max_result_window" :"1000000"}'

特殊字符:

https://blog.csdn.net/gong_yangyang/article/details/77505039

 

五 、服务重启

找到应用kill之后,在bin目录下执行 sh elasticsearch -d  (-d 后台执行)

你可能感兴趣的:(ElasticSearch的基本集成和使用)