东东东 陈煜东的博客

月份存档: 二月 2016

sphinx doc正式支持中文搜索啦

之前Sphinx doc一直不支持web的中文搜索,一个牛逼的项目怎么能不支持中文搜索呢。看到现在这个项目的一个负责人是日本人,目前支持CJK的的搜索就是日本了,我觉得不应该呀,我大中华人杰辈出。果然在github上的pull request看到了台湾的enhao兄提交了繁体中文的搜索,看了代码的实现,里面是支持中文搜索的,于是在他的基础上修改了一些完善了简体中文的支持。

我一直觉得sphinx-doc这个项目很不错,可以写文档,写书,多多关注关注一下issue的列表。

上线发布

现在sphinx-doc的master或者v1.4版本后就支持中文(简体+繁体)搜索了。

sphinx-doc的中文搜索是依靠jieba这个开源的类库来实现的,这个类库就支持简体和繁体的切分,所以就很容易实现了。

使用

第一,你的系统需要安装jieba类库, pip install jieba

第二,接下来修改sphinx的conf.py文件,为项目设置为中文的搜索配置。

# Language to be used for generating the HTML full-text search index.
# Sphinx supports the following languages:
#   'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja'
#   'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr', 'zh'
html_search_language = 'zh'

第三,可选配置

# A dictionary with options for the search language support, empty by default.
# 'ja' uses this config value.
# 'zh' user can custom change `jieba` dictionary path.
# html_search_options = {'dict': '/usr/lib/jieba.txt'}   # 根据需要设置jieba的词典路径

第四,接下来重新编译生成文档。make html

sphinx的基本搜索原理

在编译的时候:

  1. 先对文本进行切词,把中文切分,
  2. 然后制作一个大的map对象,把关键字做为key,url做为value,保存到js文件。
  3. 搜索的时候寻找对应的关键字key,拿到url作为列表展示。

后续计划

上线比较匆忙,还有一些中文搜索的计划

  • 支持python3的搜索
  • 添加测试的用例

分类: Python

腾讯云招人啦~

2016开始啦,社招、校招、实习继续啦~ http://www.qcloud.com/

联系我

联系我~ Mjg2Mjg4NDE3QHFxLmNvbQ==

如果对虚拟化技术感兴趣,就联系我吧,这里有很多不同的岗位,不要局限于以下几个~,找我内推啦~

相关的岗位有:

  • 类openstack
  • kvm虚拟化
  • SDN虚拟网络
  • web开发
  • 运营开发
  • 运维

更多岗位参考-> 腾讯云招聘

腾讯云计算平台研发工程师

岗位职责

  • 负责腾讯云主机业务后台server研发;
  • 负责腾讯云主机虚拟化控制平台的相关架构和研发;
  • 参与相关产品需求讨论以及系统架构的设计和优化工作。

岗位要求

  • 本科及以上学历;
  • 2年以上python开发经验,有C/C++经验者优先;
  • 精通TCP/IP协议,进程间通讯编程,多线程编程等,熟悉Linux常见网络服务器模型;
  • 了解libvirt、qemu等虚拟化组件的原理和代码逻辑优先;
  • 了解KVM虚拟化,熟悉openstack的架构和主要流程,有相关领域工作经验的优先;
  • 具备良好的沟通表能力及团队协作精神、有较强的主动性、责任心与执行能力,具备良好的分析解决问题能力。

运营开发工程师

岗位职责

  • 负责云平台虚拟化运营支撑系统的研发工作,工作内容主要:
  • 腾讯云的资源全景视图,从物理层面到具体云主机的分层视图,包含资源的库存管理,消耗分析,扩容流程等;
  • 云主机调度核心算法的可视化,体现不同云主机的售卖对资源池的影响,从而为主打机型,营销活动,扩充资源提供依据;
  • 虚拟机管理相关运维流程实现,如虚拟主机资源池管理、母机初始化、子机投放工具等;
  • 负责腾讯云Api的相关开发工作。

岗位要求

  • 本科及以上学历;
  • 2年以上B/S架构系统分析设计经验;
  • 精通PHP开发技术,熟悉python,shell等脚本语言;
  • 熟练掌握常用Linux命令,熟练掌握la(n)mp架构,能够熟练对la(n)mp进行架设及配置;
  • 熟悉ITIL体系和运维流程,有相关自动化运维系统开发经验者优先;
  • 有数据库开发,数据分析经验者优先;
  • 熟悉虚拟化技术者(XEN、KVM)优先。

高级系统运维工程师

岗位职责:

  • 负责对虚拟化疑难问题分析解决,形成方法论,提升团队技术能力;
  • 负责通过技术手段、流程制度提升虚拟化平台可用性;
  • 负责分析业务不合理、不高效地方,提出优化改进方案并推进实施;
  • 负责腾讯云虚拟化运维平台规划,建设,不断提升运维效率。

岗位要求:

  • 本科及以上学历;
  • 3年以上相关工作经验,精通linux,windows操作系统,对系统性能相关问题有较深刻理解;
  • 熟悉主流虚拟化技术原理(如kvm,xen,hyper-v,lxc),有实际的对虚拟化疑难问题trouble shooting经验;
  • 熟悉TCP/IP协议,了解SDN相关技术,能够定位linux虚拟化环境下网络异常;
  • 擅长shell,python,perl中一种或几种,熟练应用awk、sed、grep、strace、tcpdump、gdb等常用命令;
  • 有过kernel研究及开发经验者优先。

分类: 生活

Copyright © 2017 东东东 陈煜东的博客 粤ICP备13059639号-1

SITEMAP回到顶部 ↑