赞
踩
(一)、这种就是搜索功能的top热词榜单,这个榜单可以这后台配置,让租户或客户可以任意控制榜单的顺序,比如电商系统的热搜商品或热卖商品 这种可以可以设计成在后台运营可配置的热搜或热卖商品top榜单,这样商家可以任意设置top榜单,有效的提高运营手段。
(二)、第二种就是通过数据采集用户每次搜索的关键词,计算出top热搜榜单。这种也可以通过es中的aggregations聚合,相当于SQL中的group by,单个分组用指标聚合,terms相当于分组后统计各组的count结果,如:
"aggs": {
"hot_count" : {
"terms" : {
"field" : "search_input.hot"
}
}
}
java代码可以参照专栏的第三篇博客 聚合查询。
(一)、联想词也可以设计成后台可配置以及采集用户搜索热词的,建议这两种方案同时使用,联想词后台可配置部分可以进行人工干预排序等,可以有效的提高运营手段。
es索引结构可为:
@Data @AllArgsConstructor @NoArgsConstructor @Builder @Document(indexName = "test_index",shards = 6) public class TestIndex { /** * 商品ID */ @Id private String skuId; /** * sku状态 0删除 1正常 */ @Field(type= FieldType.Integer) private Integer skuState; /** * 商品标题 */ @MultiField(mainField = @Field(type=FieldType.Text,analyzer = "ik_max_word",searchAnalyzer = "ik_smart"), otherFields = {@InnerField(type=FieldType.Text,suffix = "pinyin",analyzer = "pinyin"),@InnerField(type=FieldType.Keyword,suffix = "raw")}) private String skuTitle; // 联想词类型 @CompletionField(analyzer="ik_max_word",searchAnalyzer="ik_max_word", maxInputLength = 100) private Completion suggestWord; }
(二)、插入索引,以及搜索补全
// 使用suggest进行标题联想 CompletionSuggestionBuilder suggest = SuggestBuilders.completionSuggestion("suggestWord") // 关键字(参数传此) .prefix(keyword) // 重复过滤 .skipDuplicates(true) // 匹配数量 .size(10); SuggestBuilder suggestBuilder = new SuggestBuilder(); suggestBuilder.addSuggestion("mySuggest",suggest); IndexCoordinates indexCoordinates = elasticsearchOperations.getIndexCoordinatesFor(TestIndex.class); // 查询 SearchResponse suggestResp = elasticsearchRestTemplate.suggest(suggestBuilder, indexCoordinates); Suggest.Suggestion<? extends Suggest.Suggestion.Entry<? extends Suggest.Suggestion.Entry.Option>> goodsNameSuggest = suggestResp .getSuggest().getSuggestion("mySuggest"); // 处理返回 List<String> suggests = goodsNameSuggest.getEntries().stream().map(x -> x.getOptions().stream().map(y->y.getText().toString()).collect(Collectors.toList())).findFirst().get(); // 输出内容 for (String suggest : suggests) { System.out.println("suggest = " + suggest); }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。