2011-05-11 3 views
0

안녕하세요 저는 색인을 작성 했으므로 "C++", ".net"또는 "C#"와 같은 단어를 검색해야하지만 결과가 나오지 않습니다. 여기 내 설정이다 : 나는 SPH_MATCH_PHRASE과 SPH_MATCH_ALL으로 검색하려고 한(++, #,.)와 같은 기호가있는 단어에 대한 스핑크스로 인덱싱 및 검색

source = xxxx 
path = /usr/local/etc/sphinx/var/data/xxxx 
docinfo = extern 
charset_type = utf-8 
min_word_len = 1 
min_infix_len = 7 
stopwords = /usr/local/etc/sphinx/var/stopwords/stop_words_en.txt 

,하지만 오는 유용한 아무것도 없다.

허용하려면 어떻게해야합니까?

감사 닉

답변

1

당신은 +, # 기호를 포함하는 charset_table을 구성해야합니다.,

index YOUR_INDEX 
{ 
charset_table = 0..9, A..Z->a..z, a..z, +, #, U+002E, 

을 당신은 단어 CALL을 통해 토큰 화되는 방법을 확인할 수 있습니다 키워드 전화 MySQL의

와 당신은 내가

MySQL의> CALL의 키워드 같은 출력을 얻을 것입니다 제공 config (설정) ('C++ .NET C#의 end_of_a_sentence.', 'YOUR_INDEX')

이 CC 그물 그물 CC 최종 끝 의의 정규화 된 토큰 화 AA 문장 문장 귀하의 설정에 내 첨가

출력입니다 토큰 표준화 C++ C++ .NET .NET C# C# end end of a 문장. 문장.

도트

함께 인덱싱 토큰 문장의 끝 charset_table 그 단어의 도트 (.)의 단점과 '예문.'

'문장' '은 '문장 '으로 토큰 화됩니다.'문장'을 검색하면 아무런 결과가 없습니다.

0

tmg_tt에 의하면 charset_table을 수정하면됩니다. 파운드

charset_table=0..9, A..Z->a..z, _, a..z,\#, U+A8->U+B8, U+B8, U+C0..U+DF->U+E0..U+FF, U+E0..U+FF 

작품,하지만 난 적어도 Sphinx 0.99에, +을 탈출하는 방법을 생각하지 않은 :

그러나, 당신은 sphinx.conf에 인덱스 정의에서, 아마도 #+을 탈출해야합니다 .

sphinx 포럼에 게시 중입니다.

+1

http://sphinxsearch.com/forum/view.html?id=9980에 게시 된 질문 –

+0

# 및 +에 해당하는 HEX/유니 코드 동등 물을 사용하는 것이 좋습니다. U + 23, U + 2B . 또한 PHP를 사용하는 경우 urldecode 및 urlencode를 rawurldecode로 변경해야하며 rawurlencode 또는 +가 작동하지 않습니다. –

관련 문제