# “移动到现有主题”搜索静默失败，而网站搜索仍然有效

**URL:** <https://meta.discourse.org/t/move-to-existing-topic-search-silently-fails-while-site-search-still-works/392872>\
**Category:** Bug\
**Tags:** composer, ux, postgres, bug\
**Created:** [2026 年1 月 7 日 12:51 UTC](https://meta.discourse.org/t/move-to-existing-topic-search-silently-fails-while-site-search-still-works/392872 "2026-01-07T12:51:03Z")\
**Posts on this page:** 1\
**Showing post:** 1

<div class="post-metadata">

作者： ![Ethsim2](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ethsim2/32/522255_2.png) [@Ethsim2](https://meta.discourse.org/u/Ethsim2)\
发布日期： [2026 年1 月 7 日 12:51 UTC](https://meta.discourse.org/t/move-to-existing-topic-search-silently-fails-while-site-search-still-works/392872/1 "2026-01-07T12:51:03Z")

</div>

您好，

我注意到\*\*“移动到现有主题”\*\*模态框（此功能以前在我的网站上可以正常工作，因此这似乎是一个回归问题）存在问题：

- 在 **搜索主题** 中输入内容不会筛选结果
- 网络请求返回 200 且参数正确
- 浏览器控制台中没有 JavaScript 错误
- 全站 `/search` 按预期工作
- 该问题在重建后仍然存在

正在发出的示例请求：  
`/search/query?term=Eve Park&type_filter=topic&search_for_id=true&restrict_to_archetype=regular`

> 选择器列表似乎仍然是一组静态主题，并且随着 `term` 的变化而没有改变。

* * *

在进行客户端调试后，我最初怀疑这可能是由于 Postgres 中未启用 `pg_trgm` 导致的，但在继续之前想确认一下。

我运行了以下命令：

```bash
./launcher enter app
rails c

```

```ruby
ActiveRecord::Base.connection.execute(
  "SELECT extname FROM pg_extension WHERE extname = 'pg_trgm';"
).to_a

```

如果命令返回：

```ruby
[]

```

则此诊断有效。

然而，它返回的是：

```ruby
[{"extname"=>"pg_trgm"}]

```

因此 `pg_trgm` **已启用** ，这似乎 **不是** 根本原因。

* * *

因此，我打算运行以下命令：

```plaintext
./launcher enter app
rake search:reindex

```

这可能有参考价值，因为我的论坛的某一特定类别有非常多的主题。

* * *

令人困惑的是：

- Discourse 其他方面仍能正常运行
- 完整的 `/search` 按预期工作
- 主题移动自动完成功能静默降级，而不是发出警告

* * *

作为调试的一部分，我还启用了 `search prefer recent posts`（搜索偏好最近帖子）设置并重新加载了浏览器。这对行为没有影响——“移动到现有主题”搜索仍然不会随着我的输入而筛选结果。

由于该设置仅影响完整的 `/search` 排名，而不影响主题选择器端点，这与问题特定于 `/search/query` 而非一般搜索性能的观点是一致的。

* * *

在运行 `rake search:reindex` 之前，我想对推理进行一次验证：

主题移动选择器使用 `/search/query` 并设置了 `search_for_id=true`，这比完整的 `/search` 端点更直接地依赖于索引查找。因此，部分过时或不一致的搜索索引可能会影响选择器，而完全搜索似乎仍然有效。

考虑到：

- 调用了该端点，
- 响应返回 200，
- `pg_trgm` 已启用，
- 切换 `search prefer recent posts` 没有效果，

进行一次完整的 `rake search:reindex` 似乎是排除索引不一致性的下一个合乎逻辑的步骤。此外，缺乏任何警告或反馈，从管理员用户体验的角度来看，这尤其令人困惑。

---

_[View the full topic](https://meta.discourse.org/t/move-to-existing-topic-search-silently-fails-while-site-search-still-works/392872)._
