Elasticsearch 使用不同分词器导致搜索排名的问题

  • 相信我们很多人做中文搜索的时候,在Github找了ik中分分词插件
  • 然后建立mapping的时候,很自然的使用这样的参数(参照官方分词文档实例)


  • 假设我们在已经建立的testindex
  • 那么我们来看一下全部数据(打火车和火车两条数据)

  • 这时候我们开始搜索(打火车)

  • 这时候我们惊奇的发现火车的分值是0.21110919居然比打火车0.160443还高

  • 很惊奇的发现打火车被划分成打火火车两个词, 所以这之中肯定有问题了(当然对于搜索引擎是没有问题的).
  • 打火车文档中的火车得到了分值,但打火会使搜索得分下降, 导致火车文档的排名靠前
  • 所以我决定把两个分词器设置成一样

  • 然后再看一下分词数据(这次分词的数据的确是我们预想的)

  • 这时我们再搜索一次数据排名, 看到得分值排名的确是我们想要的了.

点赞