2010-02-11 5 views
2

불행히도 파서는 모든 구두점을 버리므로 'C', 'C++'및 'C#'모두 'c'로 끝납니다.PostgreSQL의 전체 텍스트 검색에서 "C#"및 "C++"과 어떻게 일치합니까?

내가 생각할 수있는 유일한 방법은 (실제로는 지금 옵션이 아닌 파서를 대체하는 것 외에) "C++"를 FTS 함수 중 하나를 사용하기 전에 내 자신의 소형 동의어 사전을 구현하는 것입니다 응용 프로그램이나 쿼리에서 "Cpp"및 "C#"을 "Csharp"로 변경합니다. FTS 기능/기능으로이를 수행 할 수있는 방법이 있습니까?

+0

값을 저장하기 전에 html 인코딩을 시도해 볼 수 있습니다. C % 2b % 2b를 어떻게 처리합니까? – RedDeckWins

+0

구문 분석기는 모든 구두점에 새 ​​토큰을 작성하므로 "C++"가 세 개의 토큰 ("C", "+"및 "+", 사전 중 무시되는 마지막 두 개)으로 분리되는 경우 " C % 2b % 2b "는"C ","% ","2b ","% "및"2b "로 구분됩니다. 그런데, "2b"가 끝내면, 그게 좀 일할 것입니다 ... –

답변

1

단어에 관련된 구두점을 모두 번역하십시오. C++ -> CPLUSPLUS, C# -> CSHARP, PL은/SQL -> PLslashSQL

당신이 라인

c + + : cpp 
C# : csharp 

와 동의어 사전을 만든 다음에 "빈"토큰 유형의 텍스트 검색 구성에 대한 매핑을 추가 할 수 있습니다

3

당신의 처음에 언급 한 새 사전

+0

조금 더 설명 할 수 있겠습니까? 이게 실제로 작동하는지 모르겠습니다. 어떻게 테스트 할 수 있으며 예상되는 결과는 무엇입니까? 나는 'SELECT * FROM plainto_tsquery ('english ','C# ');'가 csharp를 반환하기를 기대하지만 그렇게하지는 않을 것이다. [이 블로그 게시물] (http://sharingtechknowledge.blogspot.com/2012/02/postgresql-thesaurus-dictionary.html)을 가이드로 사용하고 있지만 매핑을 빈'ALTER MAPPING FOR blank WITH programming_ths '를 사용하도록 변경하고 있습니다. ' – dwhite

관련 문제