prosource

PL-SQL의 contains()는 어떻게 작동합니까?

probook 2023. 7. 7. 19:06
반응형

PL-SQL의 contains()는 어떻게 작동합니까?

내 쿼리에서 contains() 메서드를 사용하여 불필요한 결과가 많습니다.좋아요나 다른 걸 쓰라고 하지 마세요.하드 코딩되어 있으므로 변경할 수 없습니다.

텍스트 필드를 검색하기 위해 색인화하는 'CONTEX Index'가 있는 텍스트 필드에 사용됩니다.표준 사용은 다음과 같습니다(사용).score연산자를 사용하여 반환되는 항목을 표시합니다.contains1에 근거한 조항contains1과 일치하는score):

SELECT score(1), value
FROM table_name
WHERE CONTAINS(textField, 'searchString', 1) > 0;

표와 같은 데이터의 경우table_name

value  |  textField
-------|-----------------------------------------------
A      |   'Here is searchString.  searchString again.'
B      |   'Another string'
C      |   'Just one searchString'

해당 쿼리가 반환됩니다.

2 A
1 C

포함은 좋아요와 비슷하지만 텍스트 필드에서 문자열이 발생하는 횟수를 계산합니다.를 사용하여 리소스를 찾을 수 없습니다. 게시한 쿼리에서 사용되는 방법을 포함하지만, 그러면 다음과 같은 행이 반환됩니다.dFullText의 인스턴스가 하나 이상 있습니다.car해당 항목 또는 이 SQL에 해당하는 항목:

Select * from blabla where dFullText like "%car%"

여기 또 다른 출처가 있습니다.

oracle.com 의 이 예를 참조하십시오.

declare 
rowno number := 0; 
   begin 
   for c1 in (SELECT SCORE(1) score, title FROM news 
          WHERE CONTAINS(text, 'oracle', 1) > 0
          ORDER BY SCORE(1) DESC) 
   loop 
   rowno := rowno + 1; 
   dbms_output.put_line(c1.title||': '||c1.score); 
exit when rowno = 10; 
end loop; 
end; 

언급URL : https://stackoverflow.com/questions/2431054/how-does-contains-in-pl-sql-work

반응형