Elasticsearch搜索Suggest功能优化

2022-01-07 00:00:00 输入 前缀 匹配 分词 拼音
搜索Suggest需要优化问题:
  • 怎么优化Suggest词库,提升Suggest词准确率
  • 怎么提高响应速度
suggest词库获取
  • 冷启动可以从内容中提取热词数据来解决,或者人工设置
  • 挖掘搜索日志:
    • 挖掘近1个月搜索日志,按照每天独立IP进行统计频次,即每个IP用户天搜索同一关键词多次只记一次,用IP过滤也有其局限性,伪IP,动态IP,局域网共享同一公网IP,都会影响到基于IP来判断用户的准确性,你也可以使用sessionId或者userId来判断
    • 统计后搜索词频次之后,抽取搜索频次>100(自定阈值)的词,同时对日志数据进行清洗,过滤去除大于10个字(去除太长的长尾词),单字和符号内容
    • 定时更新suggest词库中。
  • 搜索日志里面包含大量 误输入词:
    1. 需要在suggest词库里面去掉误输入词,对于搜索频次高的词,可以挖掘其对应的正确词,通过同义词进行查询改写。
    2. 误输入词同义词挖掘可以通过挖掘搜索session序列,使用word2vec训练来获取误输入词的同义词,通过分词器同义词设置,对误输入词进行查询改写。
搜索Suggest需实现以下几个功能:
  • 匹配:能够通过用户的输入进行前缀匹配;
  • 排序:根据建议词的优先级或者搜索热度进行排序;
  • 纠错:能够对用户的输入进行拼写纠错(suggest建议优先prefix匹配,不宜过多提示,因此只需提供前缀匹配,中文拼音匹配即可)

相关文章