阅读提示
本文约 747 字,预计阅读 2 分钟。文中命令与配置均经过实测,可直接参考执行。
本文约 747 字,预计阅读 2 分钟。文中命令与配置均经过实测,可直接参考执行。
引言:搜”backup”英文排中文后
多语言搜索不仅要”分语言”(见搜索篇),还要”相关性对”——英文 query 应匹配英文标题权重高。默认 WP 搜索无语言权重,需专业方案。
原理分析:相关性怎么做
Algolia/ElasticPress 建索引时给每文档打 language 属性,查询时过滤语言并可在本语言内算 TF-IDF/BM25 排序。跨语言语义搜索更复杂(需翻译 query 或向量检索),一般先做到”分语言 + 本语排序”。
保姆级实操
ElasticPress:映射加 language 字段,查询 filter:
{ "query": { "bool": { "must": {"match":{"post_content":"backup"}}, "filter":[{"term":{"language":"en"}}] } } }
Algolia:每条 record 带 language,前端 facets 过滤。
常见坑
- 索引没 language,相关性与过滤都差。
- 跨语言 query 不翻译,英文搜不到中文同义词。
- 案例:某站换 ElasticPress 按 language 索引,英文搜索英文排前,相关度显著提升。
- 权重全站统一,小语言淹没。
- 索引不同步,新文搜不到。
总结
判断标准:索引含 language、查询过滤+本语排序。行动清单:建 language 索引 → 过滤 → 本语排序 → 同步 → 验相关。详见多语言站点的站内搜索问题。
觉得有用?点个赞支持一下
标签:
# Algolia
# Algolia 多语
# ElasticPress
# ElasticPress 多语
# language
# 分语言索引
# 多语言搜索相关性
# 搜索插件
# 搜索相关性
# 索引
