Изменить:
Sphinx строит индекс только для всего китайского предложения, так как в нем нет места, и Sphinx не знает, где разделить слова для построения индексов. Проверьте файл searchindex.js
на предмет сгенерированных индексов.
Попробуйте выполнить поиск по слову «标准表达方式», это работает. ^_^
Sphinx создает индексы, используя скрипт Python 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, если вы действительно хотите создать указатель для китайских документов.
person
Naruil
schedule
27.05.2013
is
, я думаю, это потому, что это стоп-слово. en.wikipedia.org/wiki/Stop_words - person Naruil   schedule 27.05.2013