searxng-search: record that no domestic-only engine set works here
Asked for a domestic-only default, so every general-web index SearXNG ships for China was added to keep_only, the container was restarted, and each was measured over 5 runs per query. None of them is usable. The default stays bing,yandex. engine en hits zh hits outcome 360search 5/5 5/5 reliable, 0% relevant quark 0/5 0/5 rate-limited dead after two good responses baidu - 0 CAPTCHA, 1h IP suspension sogou - 0 upstream AttributeError baidu kaifa - 0/10 code index: "opencode v2" matches OpenCV2 bilibili - - video titles, not a web index chinaso news - - falls through to the default engine set quark was the one that looked like the fix. On its first two requests it returned the exact article being asked about as result #1 on both the Chinese and the English query -- better than anything else measured -- and then answered 0 results on 5 consecutive runs of each. Had it not been run 5 times, it would have looked like the obvious upgrade. baidu kaifa is worth remembering as a category error: it is a code search index, so it matches "opencode v2" against OpenCV2 and returns CSDN blog posts at 0% relevance. It is reachable and does not CAPTCHA, which makes it look healthy in /config while being useless. The foreign engines that were reachable (brave, duckduckgo, google, qwant, wikipedia) were added at the same time and all returned 0, consistent with the network timeouts already recorded in settings.yml. mojeek and startpage are not present in this SearXNG release at all, so the earlier note calling them "unreachable" was imprecise. settings.yml was restored from a backup and diffed byte-identical before this commit; the probe engines never left the instance. cn.bing.com is the only dependable endpoint and is a China-hosted Bing, so bing counts as the domestic option. Its one real limitation stands: it ignores the site: operator, so site-restricted search is unavailable through this instance. Also fixes a duplicated `bing` row left in the README engine table by the previous commit.
This commit is contained in:
@@ -155,19 +155,48 @@ SearXNG 2026.10.7-6671d89be, `docker.io/searxng/searxng:latest` (built
|
|||||||
|
|
||||||
| Engine | Status |
|
| Engine | Status |
|
||||||
| --- | --- |
|
| --- | --- |
|
||||||
| `bing` | Active. Needs `base_url: https://cn.bing.com`; `www.bing.com` blocks scraping from this network. |
|
| `bing` | Active and reliable, 5/5 non-empty runs on both query types. Needs `base_url: https://cn.bing.com`; `www.bing.com` blocks scraping from this network. Default. |
|
||||||
| `yandex` | Active. Best measured relevance here on both Chinese and English technical queries; first result for a V1→V2 migration query is the migration doc itself. Default. |
|
| `yandex` | Active and reliable, 5/5, 15 results per run. Best measured relevance here; first result for a V1→V2 migration query is the migration doc itself. Default. |
|
||||||
| `bing` | Active, but needs `base_url: https://cn.bing.com`; `www.bing.com` blocks scraping from this network. Default. Supports neither paging nor `time_range`. |
|
| `naver` | Reliable, 5/5. Strongest on English (migration doc ranked #1) but 0/9 on a Chinese query, so it is left out of the defaults and worth passing explicitly for English lookups. |
|
||||||
| `naver` | Active and strongest on English, but 0/9 relevant on a Chinese query, so it is left out of the defaults rather than allowed to dilute them. Pass `engines=naver` explicitly for English lookups. |
|
| `360search` | Reliable but returns 4–5 results at 0% relevance. It splits the query on "V1"/"V2" and answers with Android and CANN version-difference articles. Removed from the defaults. |
|
||||||
| `360search` | Active, and the **worst** engine on both query types: 0/5 relevant on a Chinese query, where it splits on "V1"/"V2" and returns Android and CANN version-difference articles. Removed from the defaults. |
|
| `quark` | Unusable. Returned 11/11 relevant results twice, then 0 results on 5 consecutive runs of each query. Rate-limited after a couple of requests. |
|
||||||
| `baidu` | Disabled. Answers with a CAPTCHA and suspends the client IP for an hour. |
|
| `baidu` | Disabled. Answers with a CAPTCHA and suspends the client IP for an hour. |
|
||||||
| `sogou` | Disabled. The upstream engine raises `AttributeError` in this release. |
|
| `sogou` | Disabled. The upstream engine raises `AttributeError` at `searx/engines/sogou.py:56` (`resp.next_request`) in this release. |
|
||||||
| `mojeek`, `ecosia`, `marginalia` | Dropped by `keep_only`; not reachable from this network. |
|
|
||||||
|
|
||||||
`bing` supports neither paging nor `time_range`, so on this instance `pageno > 1`
|
`bing` supports neither paging nor `time_range`, so on this instance `pageno > 1`
|
||||||
and `time_range` both narrow the result to nothing useful. The tool says so in
|
and `time_range` both narrow the result to nothing useful. The tool says so in
|
||||||
the argument descriptions rather than returning a silently short list.
|
the argument descriptions rather than returning a silently short list.
|
||||||
|
|
||||||
|
### There is no working domestic-only engine set
|
||||||
|
|
||||||
|
Stated plainly because it was measured, not assumed. Every general-web index
|
||||||
|
SearXNG ships for China was added to `keep_only`, the container was restarted,
|
||||||
|
and each was measured over 5 runs per query:
|
||||||
|
|
||||||
|
| Engine | en hits | zh hits | Outcome |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| `360search` | 5/5 | 5/5 | Reliable, 0% relevant |
|
||||||
|
| `quark` | 0/5 | 0/5 | Rate-limited dead after two good responses |
|
||||||
|
| `baidu` | — | 0 | CAPTCHA, 1-hour IP suspension |
|
||||||
|
| `sogou` | — | 0 | Upstream `AttributeError` |
|
||||||
|
| `baidu kaifa` | — | 0/10 | A **code** index: matches "opencode v2" as OpenCV2 and returns CSDN blog posts |
|
||||||
|
| `bilibili` | — | — | Video titles, not a web index |
|
||||||
|
| `chinaso news` | — | — | Falls through to the default engine set |
|
||||||
|
| `brave`, `duckduckgo`, `google`, `qwant`, `wikipedia` | 0 | 0 | Unreachable from this network |
|
||||||
|
| `mojeek`, `startpage` | — | — | Not present in this SearXNG release |
|
||||||
|
|
||||||
|
`quark` is the trap. On its first two requests it returned the exact article
|
||||||
|
being asked about as result #1 on both queries — better than anything else
|
||||||
|
measured here — and then went permanently dark. Do not reinstate it on the
|
||||||
|
strength of a first impression.
|
||||||
|
|
||||||
|
`cn.bing.com` is the only dependable endpoint, and it is a China-hosted Bing,
|
||||||
|
so `bing` serves as the domestic option. Its one real limitation is that it
|
||||||
|
ignores the `site:` operator completely: `site:opencode.ai v2 migration` returns
|
||||||
|
0 results from opencode.ai, while the same query without `site:` returns 3.
|
||||||
|
Site-restricted search is not available through this instance — fetch the docs
|
||||||
|
index and follow links instead.
|
||||||
|
|
||||||
## Troubleshooting
|
## Troubleshooting
|
||||||
|
|
||||||
| Symptom | Check |
|
| Symptom | Check |
|
||||||
|
|||||||
@@ -42,8 +42,32 @@ const DEFAULT_BASE_URL = process.env.SEARXNG_URL ?? "http://127.0.0.1:39217"
|
|||||||
// the first round of noise in this plugin's history came from.
|
// the first round of noise in this plugin's history came from.
|
||||||
//
|
//
|
||||||
// naver is strong on English but returns 0/9 on Chinese, so it is left out
|
// naver is strong on English but returns 0/9 on Chinese, so it is left out
|
||||||
// rather than allowed to dilute Chinese queries. baidu stays out entirely: it
|
// rather than allowed to dilute Chinese queries.
|
||||||
// answers with a CAPTCHA and suspends the client IP for an hour.
|
//
|
||||||
|
// A domestic-only engine set was tried and there is no working one on this
|
||||||
|
// network. Every general-web index SearXNG ships for China was added to
|
||||||
|
// keep_only, restarted, and measured over 5 runs per query:
|
||||||
|
//
|
||||||
|
// engine en hits zh hits result
|
||||||
|
// 360search 5/5 5/5 4-5 results, 0% relevant
|
||||||
|
// quark 0/5 0/5 11/11 relevant twice, then rate-limited dead
|
||||||
|
// baidu - 0 CAPTCHA, suspends the client IP for an hour
|
||||||
|
// sogou - 0 upstream AttributeError, searx/engines/sogou.py:56
|
||||||
|
// baidu kaifa - 0/10 code index: matches "opencode v2" as OpenCV2
|
||||||
|
// bilibili - - video titles, not a web index
|
||||||
|
// chinaso news - - falls through to the default engine set
|
||||||
|
//
|
||||||
|
// quark is the one that looked like a fix. It returned the exact article being
|
||||||
|
// asked about as result #1 on both queries, then answered 0 results on 5
|
||||||
|
// consecutive runs of each. Do not put it back in the default on the strength
|
||||||
|
// of a first request.
|
||||||
|
//
|
||||||
|
// cn.bing.com is the only reliably useful endpoint, and it is a China-hosted
|
||||||
|
// Bing, so `bing` counts as the domestic option here. Its one real limitation
|
||||||
|
// is that it ignores the `site:` operator entirely.
|
||||||
|
//
|
||||||
|
// baidu stays out entirely: it answers with a CAPTCHA and suspends the client
|
||||||
|
// IP for an hour, which would break every search that touches it.
|
||||||
const DEFAULT_ENGINES = "bing,yandex"
|
const DEFAULT_ENGINES = "bing,yandex"
|
||||||
|
|
||||||
const DEFAULT_TIMEOUT_MS = 20_000
|
const DEFAULT_TIMEOUT_MS = 20_000
|
||||||
|
|||||||
Reference in New Issue
Block a user