logo-white.png

doc_searchsearch 的区别

MrDoc中有两个搜索入口,它们使用不同的搜索技术和参数:

1. /doc_search/ — 全文搜索(Haystack + Whoosh)

项目说明
URL/doc_search/?q=关键词
视图DocSearchViewapp_doc/views_search.py
搜索技术Whoosh全文检索引擎 + jieba中文分词
搜索参数q(搜索框name="q")
模板template/search/search.html
特点支持中文分词、相关性排序、搜索结果高亮、时间筛选
搜索范围索引中的文档标题和正文内容

2. /search/ — 精准搜索(Django ORM)

项目说明
URL/search/?kw=关键词&type=doc
视图search 函数(app_doc/views.py
搜索技术Django ORM__icontains(数据库LIKE查询)
搜索参数kw(搜索框name="kw")
模板template/app_doc/search_result.html
特点支持搜索文档、文集、标签三种类型
搜索范围数据库中的文档标题、正文、文集名称、标签名称

关键区别

  1. 搜索参数名不同:全文搜索用 q,精准搜索用 kw
  2. 搜索技术不同:全文搜索使用Whoosh索引(更快、支持中文分词),精准搜索使用数据库LIKE查询
  3. 搜索类型不同:全文搜索只搜文档,精准搜索可搜文档/文集/标签
  4. 页面切换:在精准搜索结果页点击"全文搜索"会跳转到 /doc_search/?q=关键词,在全文搜索页点击"精准搜索"会跳转到 /search/?kw=关键词&type=doc

为什么您可能觉得"什么都搜不到"

如果您在首页搜索框(template/app_doc/search.html)输入关键词,当 search_type1 时提交到 /doc_search/?q=关键词(全文搜索),否则提交到 /search/?kw=关键词(精准搜索)。请确认:

  • 您访问的是哪个URL路径
  • 使用的参数名是 q 还是 kw
  • 文档中确实包含您搜索的关键词
浏览 50
点赞 0