2013-05-25 11 views
5
apt-get install python-sphinx  
apt-get install sphinxsearch  
mkdir rest  
cd rest/  
sphinx-quickstart  

Tworzę mój pierwszy artykuł w zrestrukturyzowanym tekście.
http://s.yunio.com/!LrAsuJak wyszukiwać chińskie znaki i krótkie słowa w dokumentacji generowanej przez Sphinx?

należy pobrać i rozpakować go na komputerze, cd do /rest/build/html, otwartą index.rst z chromem.

i stwierdził, że w odnowionym funkcji wyszukiwania tekstu:

nie 1.Can szukać Chiński znak
2.can nie szukać krótkich słów

proszę zobaczyć attatchment 1, to jest mój cel artykuł do przeszukania
enter image description here W tekście można zobaczyć is i 标准.

patrz załącznik 2, nie można wyszukać chińskiego znaku 标准, który znajduje się w tekście. enter image description here patrz załącznik 3, nie można wyszukiwać krótkich słów is, który znajduje się w tekście. enter image description here

Jak mogę rozwiązać problem?

+0

W przypadku "jest", myślę, że to dlatego, że jest to słowo stop. http://en.wikipedia.org/wiki/Stop_words – Naruil

+0

Czy używasz różnych kodowań? Może to jest problem. Przeglądarka używa utf8, jak sądzę. Co to jest kodowanie pliku, który chcesz znaleźć? – User

Odpowiedz

6

Edit:

tylko Sphinx zbudować indeks dla całego zdania chińskiej, ponieważ nie ma w nim miejsca i Sfinks nie wie, gdzie rozdzielić słowa do budowania indeksów. Sprawdź plik searchindex.js dla wygenerowanych indeksów.

Spróbuj wyszukać słowo "标准 表达 方式", działa.^_^

Budowanie indeksów Sphinx przy użyciu python scrpit search.py. Patrząc w to, możemy znaleźć

Dlatego nie można znaleźć krótkich słów. Możesz usunąć te słowa z tej listy, jeśli chcesz, aby pojawiły się w indeksie.

Możemy również znaleźć ten wiersz:

word_re = re.compile(r'\w+(?u)') 

To wyrażenie regularne, który jest używany przez Sfinksa rozdzielić słowa. Teraz możemy zobaczyć, dlaczego nie może indeksować chińskich słów.

Rozwiązaniem jest dodanie do tego pliku chińskiego podziału na słowa. Ktoś już to zrobił: http://hyry.dip.jp/tech/blog/index.html?id=374

odpowiedź dla wyszukiwarki Sphinx:

zostawiam go tutaj w przypadku innych może się przydać. Dziękuję, że mzjn to wskazał.

Sfinks domyślnie nie obsługuje chińskiego, ponieważ nie może rozpoznać chińskiego zestawu znaków. Nie wie, gdzie podzielić słowa, aby tworzyć indeksy. Musisz zmodyfikować plik konfiguracyjny, aby umożliwić indeksowanie chińskich słów.

Dokładniej, należy zmodyfikować charset_table, ngram_len, ngram_chars w sphinx.conf aby to działało. Możesz użyć tych słów kluczowych do poprawnej konfiguracji.

Jednak Sphinx może generować duży indeks, ponieważ każdy chiński znak jest traktowany jak słowo. Więc spróbuj coreseek zamiast tego, jeśli naprawdę chcesz zbudować indeks dla chińskich dokumentów.

+0

Pytanie dotyczy [generatora dokumentacji Sphinx] (http://sphinx-doc.org), ** nie ** wyszukiwarki Sfinksa. – mzjn

+0

@mzjn Oh, to moja wina. Już to poprawiłem. – Naruil

+0

dlaczego w moim Sfinksie nie ma 'search.py'? –