提升 Elasticsearch 查询相关性与用户搜索体验
1. 引言
Elasticsearch 作为一款强大的搜索引擎,在数据搜索领域应用广泛。在搜索过程中,评分是一个关键因素,它直接影响搜索结果的排序和相关性。Elasticsearch 借助 Apache Lucene 库的文档评分功能,允许我们使用不同的查询类型来调整查询结果的分数。
当设计查询时,我们通常会从最简单的查询开始,以获取所需的文档。然而,由于 Elasticsearch 无法猜测我们的业务逻辑,这些简单查询返回的结果在用户搜索体验方面可能并非最佳。接下来,我们将通过一个实际示例,详细介绍如何优化查询相关性,提升用户搜索体验。
2. 数据准备
为了展示查询修改的效果,我们需要使用数据。由于无法使用实际工作中的数据,我们选择对 Wikipedia 数据进行索引。具体操作步骤如下:
1.删除旧的索引和 river:bash curl -XDELETE 'localhost:9200/_river/wikipedia_river' curl -XDELETE 'localhost:9200/wikipedia'
2.创建新的索引并设置映射:bash curl -XPOST 'localhost:9200/wikipedia' -d'{ "settings": { "index": { "analysis": { "analyzer": { "keyword_ngram": { "filter": [ "lowercase"