# 在Meta上测试的搜索改进

**URL:** <https://meta.discourse.org/t/refinements-to-search-being-tested-on-meta/254158>\
**Category:** Announcements\
**Tags:** search\
**Created:** [2023年二月6日 06:05 UTC](https://meta.discourse.org/t/refinements-to-search-being-tested-on-meta/254158 "2023-02-06T06:05:20Z")\
**Posts on this page:** 1\
**Showing post:** 1

<div class="post-metadata">

**Author:** ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)\
**Post date:** [2023年二月6日 06:05 UTC](https://meta.discourse.org/t/refinements-to-search-being-tested-on-meta/254158/1 "2023-02-06T06:05:21Z")

</div>

最近，由于内部反馈，我们决定优先改进搜索算法。

这些更改已作为 Discourse 3.1.0.beta3 的一部分推出到所有站点。更新后，您的站点将自动开始重新索引所有内容以供搜索。

作为此更新的一部分，有两个新的站点设置，但这些设置已设置为我们在 meta 上的测试中发现效果良好的值，因此我们预计大多数站点将无需更改它们。

### 优先在标题中完全匹配词语，而非部分匹配

Discourse 在搜索时会执行 `词干提取` + `前缀匹配`。这有时会导致非常意外的结果。

例如：`redis` 词干提取为 `redi`，因此搜索 `redis` 可以找到所有以 `redi` 开头的词，如 `redirect` 等。  
一个新的隐藏站点设置 `prioritize_exact_search_title_match` 已添加，现在默认启用。

之前：

 ![redis 的旧搜索结果包含许多奇怪的结果](https://global.discourse-cdn.com/meta/original/4X/9/0/0/90054d352aae7b9105c902b1903674aa441df838.png)

之后：

 ![更多 redis 结果](https://global.discourse-cdn.com/meta/original/4X/f/d/d/fddbaee78b27d8a4f8f74b53fcedb98a7da37170.png)

这意味着，如果您记得标题并输入它，您更有可能命中标题。

### 减少最大索引重复

我们的排名算法将包含一个词语多次的帖子排在只包含该词语一次的帖子之上。这意味着您可以通过简单地重复一个词语来“欺骗”搜索。您输入的词语越多，它在搜索结果中的排名就越高。  
一个新的隐藏站点设置 `SiteSetting.max_duplicate_search_index_terms`，默认为 6。

应用后，这意味着如果您在一个帖子中输入 sam 6 次或 60 次，其排名将保持不变。它为结果的奖励设置了一个上限。  
此更改还具有积极的性能影响，因为搜索索引会变小一些。

### 其他错误修复

部分工作是查看搜索的极端情况。

- 之前我们降低了 **已关闭** 主题的优先级，但忘记了 **已归档** 主题。此问题[现已修复](https://github.com/discourse/discourse/commit/5d28cb709acff03dfab4675fa86032fcc96ed5f2)。
- 之前我们过度依赖“域”搜索的前缀匹配。这意味着单词 `happy` 无法找到 `https://happy.com`，因为 `happy` 的词干是 `happi`，而前缀匹配失败。此问题[已修复](https://github.com/discourse/discourse/pull/20136)。

### 未来工作

- 我们计划尝试对提及自动完成功能进行“模糊”搜索。（例如，允许您跳过一个字母）
- 我们计划研究降低标题中重复词语的优先级。目前，已关闭的主题 `hello goodbye hello` 的排名高于 **已打开** 的主题 `hello world`。
- PageRank……我们目前在排名结果时不考虑传入的内部链接数量。这意味着有时链接非常多的主题的排名可能低于一个很少被链接的稀有主题。在我们的排名算法中考虑这一点会很好。
- 我们有一个关于 AI 集成的开放性计划，我们可能会从 GPT 类工具中获得一些灵感。

### 您可以做什么来提供帮助？

您在 meta 上注意到任何不好的搜索结果吗？如果是，请包含您搜索的词语，并解释为什么结果不理想。  
您觉得这些更改如何（中性/更好/更糟？）

---

_[View the full topic](https://meta.discourse.org/t/refinements-to-search-being-tested-on-meta/254158)._
