apt-get install python-sphinx
apt-get install sphinxsearch
mkdir rest
cd rest/
sphinx-quickstart
我在重组文本中创建了我的第一篇文章 http://s.yunio.com/!LrAsu
请下载并在计算机上解压缩,然后点击/rest/build/html
,用你的chrome打开index.rst。
我发现在重组文本搜索功能中:
1.不能搜索中文字符
2.不能搜索短语
请参见附件1,这是我要搜索的目标文章
您可以在文本中看到is
和标准
。
请参阅附件2,无法搜索文本中的中文字符标准
。
请参阅附件3,无法搜索文本中的短文is
。
我该如何解决这个问题?
答案 0 :(得分:6)
修改强>
Sphinx只为整个中文句子构建索引,因为它没有空格,Sphinx不知道在哪里拆分单词来构建索引。检查文件searchindex.js
以获取生成的索引。
尝试搜索“标准表达方式”这个词,它有效。 ^ _ ^
使用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())
这就是为什么找不到短词的原因。如果您只希望它们出现在索引中,则可以从此列表中删除这些单词。
我们也可以找到这一行:
word_re = re.compile(r'\w+(?u)')
这是Sphinx用于分割单词的正则表达式。现在我们可以看出为什么它不能索引中文单词。
解决方案是在此文件中添加中文分词支持。有人已经这样做了:http://hyry.dip.jp/tech/blog/index.html?id=374
回答Sphinx搜索引擎:
我把它放在这里以防其他人觉得有用。感谢mzjn指出它。
Sphinx默认不支持中文,因为它无法识别中文字符集。它不知道在哪里拆分单词来构建索引。您需要修改配置文件,让它为中文单词编制索引。
更具体地说,您应该修改charset_table
中的ngram_len
,ngram_chars
,sphinx.conf
以使其有效。您可以谷歌这些关键字进行正确配置。
但是,Sphinx可能会生成一个巨大的索引,因为每个中文字符都被视为一个单词。因此,如果您真的想为中文文档构建索引,请尝试使用coreseek。