2009-11-07 4 views
0

안녕이 나는이 다음이 질의 한 :홀수 전체 텍스트 검색 결과

SELECT FT_TBL.JobId, FT_TBL.Title, FT_TBL.[Description], 
    FT_TBL.Location, KEY_TBL.RANK FROM Jobs AS FT_TBL 
INNER JOIN FREETEXTTABLE (Jobs, (Title, [Description], Location), 
    'asp.net software') 
    AS KEY_TBL on FT_TBL.JobId = KEY_TBL.[KEY] 
WHERE CONTAINS (Location, '"luton*"') 
order by KEY_TBL.RANK desc; 

SELECT FT_TBL.JobId, FT_TBL.Title, FT_TBL.[Description], 
    FT_TBL.Location, KEY_TBL.RANK FROM Jobs AS FT_TBL 
INNER JOIN FREETEXTTABLE (Jobs, (Title, [Description], Location), 
    'asp.net software', 100) 
    AS KEY_TBL on FT_TBL.JobId = KEY_TBL.[KEY] 
WHERE CONTAINS (Location, '"luton*"') 
order by KEY_TBL.RANK desc; 

유일한 차이점은 두 번째는 top_n_by_rank 매개 변수는 첫 번째 반환 100으로 설정했다됩니다 1000+ 결과, 두 번째 것이 100을 반환 할 것이라고 생각했지만 결과는 0을 반환합니다. 이유가 무엇입니까? top_n_by_rank 매개 변수를 변경하여 최상의 결과 만 얻으려면 어떻게해야합니까?

+0

첫 번째 쿼리에서 반환되는 항목은 Rank> 0입니까? – sisve

답변

0

아마도 상위 100 개의 결과는 "luton*과 일치하지 않으며 WHERE 절로 필터링됩니다.

+0

그들은 모든 일을합니다 :(모든 위치 필드의 절반은 내 테이블에 luton을 포함하고 나머지는 london을 포함합니다.) – David

+0

top_n_by_rank 매개 변수는 반환 알고리즘 결과에 알고리즘 로직을 추가하여 따라서 지정된 번호를 입력하고 계시로 순위를 정하고 결과에 대한 상위 150 개 항목을 선택하여 리소스에 대한 부담을 방지했습니다. – David