96SEO 2026-02-23 11:56 12
dependencygroupIdorg.elasticsearch.client/groupIdartifactIdelasticsearch-rest-high-level-client/artifactId/dependency因为SpringBoot默认的ES版本是7.17.10所以我们需要覆盖默认的ES版本

propertiesmaven.compiler.source11/maven.compiler.sourcemaven.compiler.target11/maven.compiler.targetelasticsearch.version7.12.1/elasticsearch.version
RestHighLevelClient(RestClient.builder(HttpHost.create(http://192.168.164.128:9200)));
1.创建Request对象CreateIndexRequest
2.准备请求参数request.source(MAPPING_TEMPLATE,
3.发送请求client.indices().create(request,
1.创建Request对象DeleteIndexRequest
2.发送请求client.indices().delete(request,
client.indices().exists(request,
索引库结构与数据库结构还存在一些差异因此我们要定义一个索引库结构对应的实体
com.hmall.item.domain.dto;import
io.swagger.annotations.ApiModel;
io.swagger.annotations.ApiModelProperty;
ItemDTO{ApiModelProperty(商品id)private
id;ApiModelProperty(商品名称)private
name;ApiModelProperty(价格分)private
price;ApiModelProperty(库存数量)private
stock;ApiModelProperty(商品图片)private
image;ApiModelProperty(类目名称)private
category;ApiModelProperty(品牌名称)private
brand;ApiModelProperty(销量)private
sold;ApiModelProperty(评论数)private
commentCount;ApiModelProperty(是否是推广广告true/false)private
isAD;ApiModelProperty(更新时间)private
itemService.getById(100002644680L);//
IndexRequest(items).id(itemDTO.getId());//
GetRequest(items).id(100002644680);//
response.getSourceAsString();ItemDTO
ItemDTO.class);System.out.println(itemDTO
1.准备Request两个参数第一个是索引库名第二个是文档idDeleteRequest
2.2.创建新增文档的Request对象request.add(new
IndexRequest(hotel).id(hotelDoc.getId().toString()).source(JSONUtil.toJsonStr(hotelDoc),
组织请求参数request.source().query(QueryBuilders.matchQuery(all,
RequestOptions.DEFAULT);handleResponse(response);
2.1.准备BooleanQueryBoolQueryBuilder
2.2.添加termboolQuery.must(QueryBuilders.termQuery(city,
2.3.添加rangeboolQuery.filter(QueryBuilders.rangeQuery(price).lte(250));request.source().query(boolQuery);//
4.解析响应handleResponse(response);
2.1.搜索条件参数//request.source().query(QueryBuilders.matchAllQuery());request.source().query(QueryBuilders.matchQuery(all,
2.2.排序参数request.source().sort(price,
2.3.分页参数request.source().from((pageNo
4.解析响应handleResponse(response);
2.1.搜索条件参数request.source().query(QueryBuilders.matchQuery(all,
);request.source().highlighter(new
HighlightBuilder().field(name).field(brand).requireFieldMatch(false));//
2.3.排序参数request.source().sort(price,
2.4.分页参数request.source().from((pageNo
4.解析响应handleResponse(response);}1.3.5
params.getSize();request.source().from((pageNo
1.构建BooleanQueryBoolQueryBuilder
{boolQuery.must(QueryBuilders.matchAllQuery());}
{boolQuery.must(QueryBuilders.matchQuery(all,
params.getCity();if(StrUtil.isNotEmpty(city)){boolQuery.filter(QueryBuilders.termQuery(city,
params.getBrand();if(StrUtil.isNotEmpty(brand)){boolQuery.filter(QueryBuilders.termQuery(brand,
params.getStarName();if(StrUtil.isNotEmpty(starName)){boolQuery.filter(QueryBuilders.termQuery(starName,
params.getMaxPrice();if(minPrice
null){boolQuery.filter(QueryBuilders.rangeQuery(price).gte(minPrice).lte(maxPrice));}request.source().query(boolQuery);//
QueryBuilders.functionScoreQuery(//
FunctionScoreQueryBuilder.FilterFunctionBuilder[]{//
FunctionScoreQueryBuilder.FilterFunctionBuilder(//
ScoreFunctionBuilders.weightFactorFunction(10)//
request.source().query(functionScoreQuery);
searchHits.getTotalHits().value;log.info(总条数{},
searchHits.getHits();for(SearchHit
hit.getHighlightFields();if(CollUtil.isNotEmpty(highlightFields)){//
highlightFields.get(name);HighlightField
highlightFields.get(brand);if(field1
field1.getFragments()[0].string();String
field2.getFragments()[0].string();hotelDoc.setName(name);hotelDoc.setBrand(brand);}}log.info(HotelDoc{},
dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-amqp/artifactId
TopicExchange(MqConstants.HOTEL_EXCHANGE,
Queue(MqConstants.HOTEL_INSERT_QUEUE,
Queue(MqConstants.HOTEL_DELETE_QUEUE,
BindingBuilder.bind(insertQueue()).to(topicExchange()).with(MqConstants.HOTEL_INSERT_KEY)}Beanpublic
BindingBuilder.bind(deleteQueue()).to(topicExchange()).with(MqConstants.HOTEL_DELETE_KEY)}
MqConstants.HOTEL_INSERT_QUEUE)public
id){hotelService.insertById(id);}/***
MqConstants.HOTEL_DELETE_QUEUE)public
id){hotelService.deleteById(id);}/***
MqConstants.HOTEL_INSERT_QUEUE,
id){hotelService.insertById(id);
MqConstants.HOTEL_DELETE_QUEUE,
id){hotelService.deleteById(id);
IndexRequest(hotel).id(hotel.getId().toString());//
2.准备Json文档request.source(JSONUtil.toJsonStr(hotelDoc),
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback