it_*_*ure 5 python restructuredtext python-sphinx
apt-get install python-sphinx
apt-get install sphinxsearch
mkdir rest
cd rest/
sphinx-quickstart
Run Code Online (Sandbox Code Playgroud)
我在重组文本中创建了我的第一篇文章.
http://s.yunio.com/!LrAsu
请下载并在您的计算机上解压缩/rest/build/html,然后使用您的chrome打开index.rst.
我发现在重组文本搜索功能:
1.不能搜索汉字
2.不能搜索短文
请看附件1,这是我要搜索的目标文章
你可以看到 is,并??在文本中.
请看附件2,不能搜索文字中的汉字?? .
请参阅附件3,无法搜索is文本中的短文 .
我该如何解决这个问题?
编辑:
Sphinx只为整个中文句子构建索引,因为它没有空格,Sphinx不知道在哪里拆分单词来构建索引.检查文件searchindex.js以查找生成的索引.
尝试搜索"标准表达方式"这个词,它有效.^ _ ^
Sphinx使用python scrpit构建索引search.py.我们可以找到它
stopwords = set("""
a and are as at
be but by
for
if in into is it
near no not
of on or
such
that the their then there these they this to
was will with
""".split())
Run Code Online (Sandbox Code Playgroud)
这就是为什么找不到短语的原因.如果您只希望它们出现在索引中,则可以从此列表中删除这些单词.
我们也可以找到这一行:
word_re = re.compile(r'\w+(?u)')
Run Code Online (Sandbox Code Playgroud)
这是Sphinx用于分割单词的正则表达式.现在我们可以看出为什么它不能索引中文单词.
解决方案是将中文单词拆分支持添加到此文件中.有人已经这样做了:http://hyry.dip.jp/tech/blog/index.html?id = 374
回答Sphinx搜索引擎:
我把它留在这里以防其他人发现它有用.感谢mzjn指出来.
Sphinx默认不支持中文,因为它无法识别中文字符集.它不知道在哪里拆分单词来构建索引.您需要修改配置文件,让它为中文单词建立索引.
更具体地讲,您应该修改charset_table,ngram_len,ngram_chars以sphinx.conf使其发挥作用.您可以谷歌这些关键字进行正确配置.
但是,Sphinx可能会生成一个巨大的索引,因为每个中文字符都被视为一个单词.因此,如果您真的想为中文文档构建索引,请尝试使用coreseek.
| 归档时间: |
|
| 查看次数: |
1050 次 |
| 最近记录: |