2013-01-11 3 views
-1

오라클에서 퍼지 이름 검색을 수행하는 방법은 무엇입니까?오라클 퍼지 텍스트 검색

우리의 데이터 시스템이 선호 우편으로했다 :

씨 니콜라스 짐 롤리

그러나 페이스 북, 또는 다른 검색 필드에 이름이 알고리즘에 전달 예를 들어

입니다 :

닉 짐

,536,913,632 롤리 10

가장 일치하는 문자가 포함 된 결과를 반환 한 후, 선호하는 모든 이름에 대해 검색 이름을 실행하는 것입니다 과정 :

씨 [] 올라을 짐 롤리

[닉을] 내 검색 이름의 17 자 중 K 짐 롤리

(16)는 선호하는 이름에 표시, 그리고 우리는 위 제안을 반환 할 수 있습니다.

내가 성공적으로

select score(1), ae.pref_mail_name 
from address_extract ae 
where contains(pref_mail_name,'fuzzy(raleigh,,,weight)',1) > 0 
order by score(1) desck 

retireve

create index ADD_EX_INDX3 on address_extract(pref_mail_name) 
    indextype is ctxsys.context 
    parameters ('DATASTORE CTXSYS.DEFAULT_DATASTORE'); 

지금은 수 있어요 테이블에 인덱스를 생성 한

초기 제안 후

Oracle's Text Query options의 읽기 [ADD 수정 됨]을 어느 반환

100 Mr. Raleigh H. Jameson 
100 Mr. Nicolas Jim Raleigh 
100 Ms. Susanne M. Raleigh 
66 Mrs. LaReign Smith 
66 Ms. Rahil Smith 
62 Mr. Smith Ragalie 

그러나 나는 성명 검색에 어려움을 겪고 있습니다. 어떻게하면 성명을 쓰러 뜨릴 수 있습니까?

+1

당신이 전혀 노력하지 않은 것 같습니다. "퍼지 텍스트 검색 오라클"검색은 [contains] (http://docs.oracle.com/cd/B13789_01/text.101/b10730/cqoper.htm) 연산자로 즉시 시작되었으며 두 번째 항목은 [일반] 개요] (http://docs.oracle.com/cd/B28359_01/text.111/b28303/query.htm); 문서에 링크 된 [ctxcat 색인] (http://docs.oracle.com/cd/B28359_01/text.111/b28303/ind.htm#i1007263)에 대한 설명입니다. 당신은 이것 중 하나를 시도 했습니까? 그렇게 할 때 어떤 문제가 있었습니까? – Ben

+0

신속한 답변을 보내 주셔서 감사합니다. "contains"에 대한 나의 이해는 나의 예제가 작동하지 않는다는 것이다. 'Nick Balcom Raleigh'는 'Nicolas Balcom Raleigh'에 포함되어 있지 않으므로 당신이 맞습니다, 나는 perhapse가 물어야 할 질문을 이해하지 못했습니다. 나는 'Levenshtein distance formula'를 보면서 전진하고 있습니다. – Lloyd

+0

첫 번째 만족스런 대답을 물어 보는 것을 주저 합니다만, 여러 용어로 작업하기 위해 퍼지 검색을 얻으려고 애 쓰고 있습니다. 나는 내 질문을 명확히하고 몇 가지 조언을 얻을 수 있는지 알아볼 것입니다. – Lloyd

답변

4

이름 일치는 하드입니다.오라클의 텍스트 인덱싱은 시작이다 따른 퍼지 매칭을 지원하지만 이러한 이름 고려해

  • 니콜라스 롤리
  • Nihcolas 롤리
  • 니코 롤리
  • 닉 롤리
  • 니키 롤리
  • 을 닉 롤리
  • 니콜라우스 롤리
  • 니콜라 롤리
  • 니키 롤리
  • 니콜라 롤리
  • 니콜라이, Levenshtein 거리 또는 더블 메타 폰을 추상화를 통해 일치를 할 시도

이 잘못된 반응과 거짓 네거티브를 생성하는 것입니다 롤리

  • Nikolaj 롤리 . 이것이 추상화의 본질입니다. 초점을 맞추고 정확한 결과 집합을 얻는 가장 좋은 방법은 동의어/반의어 사전을 사용하는 것입니다 (심지어 완벽한 것은 아닙니다). 불행히도 포괄적 인 이름의 시소러스를 조합하는 것은 거대한 사업입니다. 작업 감각을 얻으려면 the stats on the NameX site을 확인하십시오.


    업데이트 : Oracle 11gR2에는 이름 검색에 맞게 확장 된 Oracle Text의 확장이 포함되어 있습니다. 이것은 매우 깔끔하고 확실히 시작하는 첫 번째 장소입니다. Find out more.