|
|
## 三、逐项根因与证据
### 检索构造层
1. **字段写死主题** `[源码 cnki/search.js]`
普通检索请求体写死:
```
QNode.QGroup[0].Items[0] = { Field: "SU", Value: 查询词, Operator: "TOPRANK" }
```
申请号不是「主题」内容,必然匹配不到。
2. **字段映射表缺申请号** `[源码]`
`buildAdvancedQuery` 的 `fieldMap` 仅:
```
all→SU, title→TI, author→AU, subject→KY,
abstract→AB, source→JN, identifier→DOI,
affiliation→AF, classification→CLC
```
没有申请号/专利号字段。
3. **跨库范围不含专利库** `[源码]`
总库 `KuaKuCode` 写死为:
```
YSTT4HG0,LSTPFY1C,JUP3MUPD,MPMFIG1A,WQ0UVIAA,
BLZOG7CK,EMRPGLPA,PWFIRAGL,NLBO1Z6R,NN3FJMUV
```
对照 `config.js`,中国专利 `OORPU5FE`、海外专利 `U8J8LYLV` 均不在内 → 跨库检索从不查专利。
4. **子库配置从未被使用** `[源码]`
`config.js` 定义了中国专利/海外专利等 16 个子库,但调用链
`_doSearch → _searchOneEngine → engine.search(query, options)`
的 `options` 从不传 `db`/`subId`;`onlineSearch.xhtml` 中亦无任何子库/范围选择控件。仅单库时才会用到 `subId`,实际不可达。
5. **字段名实不符** `[源码]`
UI 中 `identifier` 标签为「DOI/其他标识符」、`classification` 标签为「学科/分类」,
但 CNKI 实际映射为 `DOI` 与 `CLC`(中图分类号)——把 ISBN/申请号粘进「其他标识符」必然查空。
|
|