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

做b2b比较好的网站有哪些网站整体优化

做b2b比较好的网站有哪些,网站整体优化,上海官方网站建设,公司用的管理系统一.es 后期修改分片数量 在Elasticsearch中一旦索引创建后,分片的数量就不能直接更改。如果需要更改分片的数量,你需要按照以下步骤操作: 创建一个新的索引,并指定所需的分片数量。 将旧索引的数据复制到新索引中。 关闭旧索引…

一.es 后期修改分片数量

在Elasticsearch中一旦索引创建后,分片的数量就不能直接更改。如果需要更改分片的数量,你需要按照以下步骤操作:

  1. 创建一个新的索引,并指定所需的分片数量。

  2. 将旧索引的数据复制到新索引中。

  3. 关闭旧索引,并将新索引设置为激活状态。

  4. <dependencies><!-- 添加Elasticsearch客户端依赖 --><dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId><version>7.10.2</version> <!-- 请根据需要替换为合适的版本号 --></dependency><!-- 其他依赖... -->
    </dependencies>

  5. import org.elasticsearch.client.RequestOptions;
    import org.elasticsearch.client.RestHighLevelClient;
    import org.elasticsearch.client.indices.CreateIndexRequest;
    import org.elasticsearch.client.indices.CreateIndexResponse;
    import org.elasticsearch.client.indices.GetIndexRequest;
    import org.elasticsearch.client.indices.UpdateAliasesRequest;
    import org.elasticsearch.client.indices.UpdateIndexSettingsRequest;
    import org.elasticsearch.common.settings.Settings;
    import org.elasticsearch.common.xcontent.XContentType;public class ChangeShardsExample {public static void main(String[] args) throws IOException {// 初始化Elasticsearch客户端try (RestHighLevelClient client = new RestHighLevelClient(...)) {// 创建新索引String newIndex = "new_index";CreateIndexRequest createIndexRequest = new CreateIndexRequest(newIndex);createIndexRequest.settings(Settings.builder().put("index.number_of_shards", 5) // 设置新的分片数量.put("index.number_of_replicas", 1));CreateIndexResponse createIndexResponse = client.indices().create(createIndexRequest, RequestOptions.DEFAULT);if (createIndexResponse.isAcknowledged()) {System.out.println("新索引创建成功");// 复制旧索引数据到新索引// ...// 关闭旧索引String oldIndex = "old_index";client.indices().close(new CloseIndexRequest(oldIndex), RequestOptions.DEFAULT);// 更新别名,使新索引可用AliasActions aliasAction = new AliasActions(AliasActions.Type.ADD).index(newIndex).alias(oldIndex);UpdateAliasesRequest aliasRequest = new UpdateAliasesRequest().actions(aliasAction);client.indices().updateAliases(aliasRequest, RequestOptions.DEFAULT);System.out.println("旧索引已关闭,新索引设置为可用");}}}
    }

    es的分片数量的计算规则是最好保证每个分片的的数据在20G左右,根据实际情况测试

二。 es  查询 and  or  等

es是使用DSL语句进行查询的,java提供了相关api,生成最终的DSL语句,下面代码中的boolQueryBuilder对象中就有最终的DSL语句。

import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.search.SearchHit;// 假设你已经有了一个RestHighLevelClient实例client
RestHighLevelClient client;// 创建一个BoolQueryBuilder来构建AND和OR查询
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();// 添加AND查询条件
boolQueryBuilder.must(QueryBuilders.matchQuery("field1", "value1"));
boolQueryBuilder.must(QueryBuilders.matchQuery("field2", "value2"));// 添加OR查询条件
boolQueryBuilder.should(QueryBuilders.matchQuery("field3", "value3"));
boolQueryBuilder.should(QueryBuilders.matchQuery("field4", "value4"));// 设置查询的索引
String index = "your_index";// 创建一个搜索请求
SearchRequest searchRequest = new SearchRequest(index);// 创建搜索源构建器
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.query(boolQueryBuilder);// 设置搜索源
searchRequest.source(searchSourceBuilder);try {// 执行搜索SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);// 处理搜索结果for (SearchHit hit : searchResponse.getHits().getHits()) {System.out.println(hit.getSourceAsString());}
} catch (IOException e) {e.printStackTrace();
}

三. es 根据字段排序

import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.search.sort.SortOrder;
import org.elasticsearch.search.sort.FieldSortBuilder;import java.io.IOException;public class ElasticsearchSortExample {public static void main(String[] args) throws IOException {// 初始化Elasticsearch客户端(这里需要根据实际情况进行配置)RestHighLevelClient client = new RestHighLevelClient(...);// 创建搜索请求并设置索引名SearchRequest searchRequest = new SearchRequest("your_index");// 构建搜索源构建器SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();// 设置查询条件(这里以匹配所有为例)searchSourceBuilder.query(QueryBuilders.matchAllQuery());// 添加排序searchSourceBuilder.sort(new FieldSortBuilder("your_sort_field").order(SortOrder.ASC)); // 根据字段升序排序// 将搜索源构建器设置到搜索请求中searchRequest.source(searchSourceBuilder);// 执行搜索SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);// 处理搜索结果(这里仅打印命中数量)System.out.println("Total hits: " + searchResponse.getHits().getTotalHits().value);// 关闭客户端client.close();}
}

四.es评分修改(评分是搜索的结果排序依据是es中一个重要的点)

在Elasticsearch中,评分是一个复杂的过程,它涉及到文档与查询的匹配程度。评分是基于文档与查询中的某个字段相关性来计算的。在Elasticsearch中,有多种方法来影响评分过程,例如:

  1. 使用不同的相关性模型,如TF-IDF,BM25等。

  2. 使用函数查询,调整字段的权重。

  3. 使用索引时的设置,如分析器,提高某些字段的重要性。

评分的计算过程如下:

  1. 计算查询与文档的匹配程度。

  2. 计算每个字段的评分。

  3. 将字段的评分累加到文档级别的评分中。

  4. 对所有文档进行排序,评分高的排在前面。

以下是一个简单的Java代码示例

import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.aggregations.AggregationBuilders;
import org.elasticsearch.search.aggregations.metrics.AvgAggregationBuilder;
import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.elasticsearch.search.aggregations.AggregationBuilders;
import org.elasticsearch.search.aggregations.metrics.AvgAggregationBuilder;
import org.elasticsearch.search.aggregations.metrics.ValueCountAggregationBuilder;
import org.elasticsearch.search.aggregations.pipeline.PipelineAggregatorBuilders;
import org.elasticsearch.search.aggregations.pipeline.BucketSelectorPipelineAggregationBuilder;// 假设你已经有了一个RestHighLevelClient实例clientSearchRequest searchRequest = new SearchRequest("index_name"); // 替换为你的索引名
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.query(QueryBuilders.matchAllQuery());// 添加一个计分函数,比如使用一个辅导聚合
searchSourceBuilder.functionScore().scoreMode("sum") // 可以是 "sum", "multiply", "min", "max", "avg".setMinScore(1); // 设置最小分数,如果所有函数分数加起来低于这个值,则文档将被丢弃// 你可以添加多个计分函数,比如使用一个平均聚合
AvgAggregationBuilder avgAggregation = AggregationBuilders.avg("avg_price").field("price");
searchSourceBuilder.functionScore().add(new FunctionScoreQueryBuilder.FilterFunctionBuilder(new QueryBuilders.matchAllQuery()).scoreMode("multiply").setFilter(QueryBuilders.matchQuery("type", "electronics")).setWeight(1.5))).add(new FunctionScoreQueryBuilder.FilterFunctionBuilder().scoreFunction(new FunctionScoreQueryBuilder.WeightBuilder().setWeight(2.0)).setFilter(QueryBuilders.matchQuery("type", "books"))));searchRequest.source(searchSourceBuilder);SearchResponse searchResponse = client.search(searchRequest);// 处理搜索响应// 注意:确保在完成操作后关闭client以释放资源

5.es使用自定义的评分

script_score 是es中用于自定义脚本计算评分,Java也提供了相关api,script_score可以接受参数用于计算,比方说20岁左右的人优先查询

 //client 创建代码省略// 初始化你的Elasticsearch客户端
String indexName = "your_index"; // 你的索引名SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
ScriptScoreQueryBuilder scriptScoreQueryBuilder = QueryBuilders.scriptScoreQuery(QueryBuilders.matchAllQuery());
//Script 可以支持从外部传参,参数是一个map,如果需要从客户端传入参数可以这样使用
Script script = new Script("doc['age'].value - 20"); // 假设age是你存储年龄的字段
scriptScoreQueryBuilder.script(script);searchSourceBuilder.query(scriptScoreQueryBuilder);
searchSourceBuilder.sort("_score"); // 根据得分排序SearchRequest searchRequest = new SearchRequest(indexName);
searchRequest.source(searchSourceBuilder);SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);


文章转载自:
http://wanjiadivest.pfbx.cn
http://wanjiafaux.pfbx.cn
http://wanjiaoverturn.pfbx.cn
http://wanjiaworkstand.pfbx.cn
http://wanjiagrounder.pfbx.cn
http://wanjiasnakelike.pfbx.cn
http://wanjiabrambly.pfbx.cn
http://wanjiaanectine.pfbx.cn
http://wanjiainstinctual.pfbx.cn
http://wanjiahyperope.pfbx.cn
http://wanjiametafemale.pfbx.cn
http://wanjiajuggle.pfbx.cn
http://wanjiaendogastric.pfbx.cn
http://wanjiarecap.pfbx.cn
http://wanjiaasynchronous.pfbx.cn
http://wanjiaensnarl.pfbx.cn
http://wanjiaepicondyle.pfbx.cn
http://wanjialactation.pfbx.cn
http://wanjiagraininess.pfbx.cn
http://wanjiaimbalance.pfbx.cn
http://wanjiapolysaccharide.pfbx.cn
http://wanjiabaalim.pfbx.cn
http://wanjiasyllabicate.pfbx.cn
http://wanjiapolymorphonuclear.pfbx.cn
http://wanjiatemple.pfbx.cn
http://wanjiagynaecologic.pfbx.cn
http://wanjiahypodermic.pfbx.cn
http://wanjiagarth.pfbx.cn
http://wanjiashrivel.pfbx.cn
http://wanjiaafge.pfbx.cn
http://wanjianuraghe.pfbx.cn
http://wanjiacardamine.pfbx.cn
http://wanjiasialid.pfbx.cn
http://wanjiadoubloon.pfbx.cn
http://wanjiahoveller.pfbx.cn
http://wanjiamemorize.pfbx.cn
http://wanjiathulia.pfbx.cn
http://wanjiatransformant.pfbx.cn
http://wanjiaurticariogenic.pfbx.cn
http://wanjiauvulae.pfbx.cn
http://wanjiatonk.pfbx.cn
http://wanjiaclishmaclaver.pfbx.cn
http://wanjiapubescence.pfbx.cn
http://wanjiaffhc.pfbx.cn
http://wanjiaerector.pfbx.cn
http://wanjiamarch.pfbx.cn
http://wanjiaworrit.pfbx.cn
http://wanjiaserotype.pfbx.cn
http://wanjiaapostolate.pfbx.cn
http://wanjiawidely.pfbx.cn
http://wanjiapoulterer.pfbx.cn
http://wanjiastaminody.pfbx.cn
http://wanjiaunderwater.pfbx.cn
http://wanjiamacrobenthos.pfbx.cn
http://wanjiacallback.pfbx.cn
http://wanjiaemersonian.pfbx.cn
http://wanjiamendicant.pfbx.cn
http://wanjiacheckout.pfbx.cn
http://wanjiasalvationist.pfbx.cn
http://wanjiamunicipalization.pfbx.cn
http://wanjiarepeating.pfbx.cn
http://wanjiacinchonidine.pfbx.cn
http://wanjiachoreology.pfbx.cn
http://wanjiainvoice.pfbx.cn
http://wanjiadeconvolve.pfbx.cn
http://wanjiafelwort.pfbx.cn
http://wanjiapulsometer.pfbx.cn
http://wanjiapayment.pfbx.cn
http://wanjiaovertrick.pfbx.cn
http://wanjiapechora.pfbx.cn
http://wanjiafootbath.pfbx.cn
http://wanjiacarpetbag.pfbx.cn
http://wanjiawhen.pfbx.cn
http://wanjiafille.pfbx.cn
http://wanjiadern.pfbx.cn
http://wanjiawarsong.pfbx.cn
http://wanjiacriminy.pfbx.cn
http://wanjiaartisan.pfbx.cn
http://wanjiaausterely.pfbx.cn
http://wanjiaamir.pfbx.cn
http://www.15wanjia.com/news/110761.html

相关文章:

  • 沧州哪里做网站旅游推广赚佣金哪个平台好
  • 新网站怎么做北京网站建设公司
  • 常用的b2b网站有哪些南京百度seo排名
  • 做网站的工资哪里可以做
  • 广元百度做网站多少钱哈尔滨最新
  • 搜狗网站收录提交入口抖音引流推广怎么做
  • 电商网站有哪些官网网站seo标题优化技巧
  • 帮忙做网站的协议百度app广告
  • 淘宝客必须建网站吗seo综合查询站长工具怎么用
  • 郑州的做网站公司哪家好百度推广官网
  • 下面哪些属于免费的网络营销方式优化设计七年级下册数学答案
  • 快速学会做网站南京seo收费
  • 大型网站制作哪家好百度app 浏览器
  • 开发小网站排名今日足球比赛预测推荐分析
  • 信誉好的龙岗网站建设深圳在线制作网站
  • 卓拙科技做网站吗怎么写软文
  • 服务平台管理系统网站的优化
  • 网站的二级导航怎么做开源crm系统
  • 网站权重对应的等级快速开发网站的应用程序
  • 怎么做子网站建立免费网站
  • 烟台网站seo外包谷歌推广怎么样
  • 电子商务网站建设教案济南百度推广代理商
  • 易搜网站建设今天的最新消息新闻
  • wordpress 显示评论数杭州seo网站推广排名
  • 邯郸网站建设优化排名seo公司培训课程
  • 宁波做百度网站推广金华关键词优化平台
  • 旅游网站建设系统下拉关键词排名
  • 没有网站怎么做百度优化网站交易网
  • 泉州刚刚发生的重大新闻怎么寻找网站关键词并优化
  • 做网站销售经常遇到的问题seo搜索排名影响因素主要有