2016-10-31 3 views
1

모든 것이 Sphnix에서 찾아 볼 수 있습니다. 나는 ONY가 사용 터키어 문자오라클의 Sphnix는 특수 (터키어) 문자로 작동하지 않습니다

에 문제가 발생했습니다 스핑크스-2.2.11 및 (또한 2.3하지 않습니다 작품)

source db{ 
Driver={Oracle in OraClient11g_home2};Dbq=ABC-DATABASE-XX:1521/ibbcbs;Uid=ibbcbs; 
    type = odbc 
    odbc_dsn = DSN=dsn_ABC; Pwd=ABC;Dbq:ABC 
    sql_host = XX 
    sql_user = XX 
    sql_pass = XX 
    sql_db = XX 
    sql_port = 1521 
} 

쿼리와 같은 Sphnix.conf에서

오라클 11G 연결 :

select 
1000000+objectid as GID, 
TO_CHAR(NAME) as NAME, 
SDO_UTIL.TO_WKTGEOMETRY(SHAPE) as SHAPE_WKT 
from MAHALLE 

나는 01,238,737,285,364,882,656,583을 Sphnix.conf

에서 터키어 아주 다른 캐릭터 세트 테이블을 시도3210

원본 데이터 : ALAN İ Ç İ

그러나 스핑크스에 색인 : ALAN 나는 Ç 나는

나는 어떻게 든로 변환됩니다. 같은 텍스트 (ALANIÇI)를 검색하더라도 스핑크스는 결과를 반환하지 않습니다.

답변

0

oracle 클라이언트가 UTF8로 데이터베이스에 연결하지 않아서 Sphinx Search가 데이터를 올바르게 수신하지 못하기 때문에 문제가 발생합니다.

이 문제점을 해결하려면 oracle 클라이언트의 언어를 TURKISH_TURKEY.UTF8으로 설정하십시오.

Windows의 경우 레지스트리 경로 Computer\HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraClient11g_home1NLS_LANG에 대한 레지스트리 값을 편집하여이 작업을 수행 할 수 있습니다. 경로는 사용중인 Oracle 클라이언트에 따라 다를 수 있습니다.

https://docs.oracle.com/cd/E12102_01/books/AnyInstAdm784/AnyInstAdmPreInstall18.html에서 언급 한 환경 변수를 설정하면 "Windows의 경우 :"라는 제목을 볼 수 있습니다.

는 유닉스 그것은 상기 변경 데이터를 색인화 후 setenv NLS_LANG TURKISH_TURKEY.UTF8

의해 고정 될 수 있으며, 모두가 잘되어야.

관련 문제