当前位置: 首页 > news >正文

高端做网站公司网络营销推广方案前言

高端做网站公司,网络营销推广方案前言,渭南企业网站建设,机械产品做哪个网站1 RestHighLevelClient介绍 默认情况下,ElasticSearch使用两个端口来监听外部TCP流量。 9200端口:用于所有通过HTTP协议进行的API调用。包括搜索、聚合、监控、以及其他任何使用HTTP协议的请求。所有的客户端库都会使用该端口与ElasticSearch进行交互。…

1 RestHighLevelClient介绍

默认情况下,ElasticSearch使用两个端口来监听外部TCP流量。

  • 9200端口:用于所有通过HTTP协议进行的API调用。包括搜索、聚合、监控、以及其他任何使用HTTP协议的请求。所有的客户端库都会使用该端口与ElasticSearch进行交互。
  • 9300端口:是一个自定义的二进制协议,用于集群中各节点之间的通信。用于诸如集群变更、主节点选举、节点加入/离开、分片分配等事项。

RestHighLevelClient是ES的Java客户端,它是通过HTTP与ES集群进行通信。

2 引入ES依赖

<!--引入es-high-level-client相关依赖  start-->
<dependency><groupId>org.elasticsearch</groupId><artifactId>elasticsearch</artifactId><version>7.10.0</version>
</dependency><dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-client</artifactId><version>7.10.0</version>
</dependency><dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId><version>7.10.0</version>
</dependency>
<!--引入es-high-level-client相关依赖  end-->

3 使用

3.1 es的配置

# es配置
# es用户名
elasticsearch.userName=elastic
# es密码
elasticsearch.password=elastic
# es host ip 地址(集群),多个以","间隔
elasticsearch.hosts=127.0.0.1:9200
# es 请求方式
elasticsearch.scheme=http
# es 连接超时时间(ms)
elasticsearch.connectTimeOut=1000
# es socket 连接超时时间(ms)
elasticsearch.socketTimeOut=30000
# es 请求超时时间(ms)
elasticsearch.connectionRequestTimeOut=500
# es 最大连接数
elasticsearch.maxConnectNum=100
# es 每个路由的最大连接数
elasticsearch.maxConnectNumPerRoute=100

3.2 es客户端配置类

/*** restHighLevelClient 客户端配置类**/
@Slf4j
@Data
@Configuration
@ConfigurationProperties(prefix = "elasticsearch")
public class ElasticsearchConfig {/*** es host ip 地址(集群)*/private String hosts;/*** es用户名*/private String userName;/*** es密码*/private String password;/*** es 请求方式*/private String scheme;/*** es 连接超时时间*/private int connectTimeOut;/*** es socket 连接超时时间*/private int socketTimeOut;/*** es 请求超时时间*/private int connectionRequestTimeOut;/*** es 最大连接数*/private int maxConnectNum;/*** es 每个路由的最大连接数*/private int maxConnectNumPerRoute;/*** 如果@Bean没有指定bean的名称,那么方法名就是bean的名称*/@Bean(name = "restHighLevelClient")public RestHighLevelClient restHighLevelClient() {// 构建连接对象RestClientBuilder builder = RestClient.builder(getEsHost());// 连接延时配置builder.setRequestConfigCallback(requestConfigBuilder -> {requestConfigBuilder.setConnectTimeout(connectTimeOut);requestConfigBuilder.setSocketTimeout(socketTimeOut);requestConfigBuilder.setConnectionRequestTimeout(connectionRequestTimeOut);return requestConfigBuilder;});// 连接数配置builder.setHttpClientConfigCallback(httpClientBuilder -> {httpClientBuilder.setMaxConnTotal(maxConnectNum);httpClientBuilder.setMaxConnPerRoute(maxConnectNumPerRoute);httpClientBuilder.setDefaultCredentialsProvider(getCredentialsProvider());return httpClientBuilder;});return new RestHighLevelClient(builder);}private HttpHost[] getEsHost() {// 拆分地址(es为多节点时,不同host以逗号间隔)List<HttpHost> hostLists = new ArrayList<>();String[] hostList = hosts.split(",");for (String addr : hostList) {String host = addr.split(":")[0];String port = addr.split(":")[1];hostLists.add(new HttpHost(host, Integer.parseInt(port), scheme));}// 转换成 HttpHost 数组return hostLists.toArray(new HttpHost[]{});}private CredentialsProvider getCredentialsProvider() {// 设置用户名、密码CredentialsProvider credentialsProvider = new BasicCredentialsProvider();credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(userName, password));return credentialsProvider;}
}

3.3 es的使用

3.3.1 创建es索引

3.3.1.1 创建es索引的工具类

创建es索引的工具类如下所示。

/*** 操作ES索引**/
@Slf4j
@Service
public class EsIndexOperation {@Resourceprivate RestHighLevelClient restHighLevelClient;private final RequestOptions options = RequestOptions.DEFAULT;/*** 判断索引是否存在*/public boolean checkIndex(String index) {try {return restHighLevelClient.indices().exists(new GetIndexRequest(index), options);} catch (Exception e) {log.error("EsIndexOperation checkIndex error.", e);}return Boolean.FALSE;}/*** 创建索引** @param indexName         es索引名* @param esSettingFilePath es索引的alias、settings和mapping的配置文件*/public boolean createIndex(String indexName, String esSettingFilePath) {String aliases = null;String mappings = null;String settings = null;if (StringUtils.isNotBlank(esSettingFilePath)) {try {String fileContent = FileUtils.readFileContent(esSettingFilePath);if (StringUtils.isNotBlank(fileContent)) {JSONObject jsonObject = JSON.parseObject(fileContent);aliases = jsonObject.getString("aliases");mappings = jsonObject.getString("mappings");settings = jsonObject.getString("settings");}} catch (Exception e) {log.error("createIndex error.", e);return false;}}if (checkIndex(indexName)) {log.error("createIndex indexName:[{}]已存在", indexName);return false;}CreateIndexRequest request = new CreateIndexRequest(indexName);if ((StringUtils.isNotBlank(aliases))) {request.aliases(aliases, XContentType.JSON);}if (StringUtils.isNotBlank(mappings)) {request.mapping(mappings, XContentType.JSON);}if (StringUtils.isNotBlank(settings)) {request.settings(settings, XContentType.JSON);}try {this.restHighLevelClient.indices().create(request, options);return true;} catch (IOException e) {log.error("EsIndexOperation createIndex error.", e);return false;}}/*** 删除索引*/public boolean deleteIndex(String indexName) {try {if (checkIndex(indexName)) {DeleteIndexRequest request = new DeleteIndexRequest(indexName);AcknowledgedResponse response = restHighLevelClient.indices().delete(request, options);return response.isAcknowledged();}} catch (Exception e) {log.error("EsIndexOperation deleteIndex error.", e);}return Boolean.FALSE;}
}
3.3.1.2 读取文件的工具类
/*** 文件操作类*/
@Slf4j
public class FileUtils {/*** 读取项目resources文件夹下的文件** @param filePath 文件路径* @return 文件内容*/public static String readFileContent(String filePath) {try {BufferedReader reader = new BufferedReader(new FileReader(filePath));String line;StringBuilder stringBuilder = new StringBuilder();while ((line = reader.readLine()) != null) {stringBuilder.append(line);}reader.close();return stringBuilder.toString();} catch (IOException e) {log.error("readFileContent error.", e);}return null;}public static void main(String[] args) {String filePath = "src/main/resources/es/mappings_test20231216.txt";String fileContent = readFileContent(filePath);}}
3.3.1.3 测试创建es索引

(1)在“resources”文件夹下创建es索引的配置文件

配置文件内容如下所示。

{"aliases": {"test": {}},"mappings": {"properties": {"name": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"address": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}}}},"settings": {"index": {"number_of_shards": "1","number_of_replicas": "1"}}
}

(2)读取es索引的配置文件,创建es索引

    @Testpublic void createIndex() {String indexName = "test_1216";String filePath = "src/main/resources/es/mappings_test20231216.txt";boolean b = esIndexOperation.createIndex(indexName, filePath);Assert.assertTrue(b);}

(3)查看创建结果

通过命令 GET /test 查看es索引创建结果,结果如下所示。

{"test_1216" : {"aliases" : {"test" : { }},"mappings" : {"properties" : {"address" : {"type" : "text","fields" : {"keyword" : {"type" : "keyword","ignore_above" : 256}}},"name" : {"type" : "text","fields" : {"keyword" : {"type" : "keyword","ignore_above" : 256}}}}},"settings" : {"index" : {"routing" : {"allocation" : {"include" : {"_tier_preference" : "data_content"}}},"number_of_shards" : "1","provided_name" : "test_1216","creation_date" : "1702723364945","number_of_replicas" : "1","uuid" : "RCAhqjPZSG-n4fse3cot4A","version" : {"created" : "7100099"}}}}
}

4 参考文献

(1)elasticsearch学习(七):es客户端RestHighLevelClient_炎升的博客

(2)中间件:ElasticSearch组件RestHighLevelClient用法详解

(3)java api 实现es中的索引管理_createindexrequest

http://www.hengruixuexiao.com/news/31438.html

相关文章:

  • 网站建设合同2018百度百科搜索入口
  • 彩票网站用什么软件做商丘seo推广
  • wordpress域名搬家优化内容
  • 素质课网站设计与建设百度天眼查公司
  • 母婴网站设计分析谷歌seo优化
  • dede cms 网站模板百度最新版app下载安装
  • 网站开发遇到的问题完整的社群营销方案
  • 綦江网站建设公司学网络运营在哪里学比较好
  • 网站建设报价明细怎么注册一个网站
  • 张店网站设计百度竞价查询
  • 国内知名商业设计公司关键词优化是什么
  • 做设计一般用的素材网站是什么建网站需要什么
  • 国内广告公司排行重庆seo技术教程
  • 做网站婚介简历怎么写seo包括哪些方面
  • 织梦网站日志seo案例分析
  • 三亚网吧多少钱一个小时重庆seo管理平台
  • 设计网站页面要多少钱南宁百度seo排名价格
  • 网络公司 网站建设 小程序seo关键词优化怎么收费
  • 网站seo方法seo关键词优化软件合作
  • 网站盗取图片微信小程序开发文档
  • 网站上的flash怎么做的市场推广计划方案模板
  • 淄博市网站建设seo建站
  • vb链接网站怎么做百度一下你就知道下载安装
  • 网站运营与维护是什么如何自己做推广
  • 淮安专业做网站seo站长博客
  • 为什么网站打开是空白长沙网站建设服务
  • 设计素材网站千图网精准客源引流平台
  • 网站banner 制作技巧网站营销策划
  • wordpress日志在哪seo优化公司哪家好
  • 全网网站建设设计北京网上推广