2 개의 다른 서버에 전체 텍스트 카탈로그가있는 동일한 테이블이 있습니다. 두 서버의 테이블 모두 색인이 생성되고 동일하게 설정됩니다. 나는 서비스를 다시 시작하고 카탈로그를 재구성하려고 시도했다. 두 서버에서 동일한 쿼리를 실행하면 두 서버에 표시된 FREETEXTTABLE의 RANK가 다르게 표시됩니다. 다음은 샘플 쿼리입니다.SQL - 동일한 전체 텍스트 검색이 다른 서버에서 다른 결과를 반환하는 이유는 무엇입니까?
SELECT *COLUMNS*
FROM TABLE
INNER JOIN FreeTextTable (TABLE, INDEXEDCOLUMN, N'"Sabariah Mohamed Ali" or "Ali Mohamed Sabariah"', 100) as KEY_TABLE ON TABLE.INDEX = KEY_TABLE.[KEY]
WHERE KEY_TABLE.rank > 30
Select *COLUMNS*
from TABLE
Inner Join Containstable (TABLE, INDEXEDCOLUMN, N'"*Sabariah" or "Sabariah*"
or "*Mohamed" or "Mohamed*"', 100) as KEY_TABLE on TABLE.INDEX =
KEY_TABLE.[KEY]
where KEY_TABLE.rank > 30
표의 색인 된 열은 "Sabariah Binti Mohamed Ali"를 포함합니다. 그래서 결과를 반환해야하지만 KEY_TABLE에서 RANK를 확인하면 두 서버가 다른 번호를 반환합니다.
내 문제는 다음과 유사하다고 생각, Full text search returns different results on test and live
편집 : 비슷한 문제를 찾을 수는, 더미 테이블을 생성 인덱스 및 카탈로그를 만들뿐만 아니라, 작동하지 않는 제공하는 솔루션을 시도했다. 인덱스가 구축되면 https://social.msdn.microsoft.com/Forums/sqlserver/en-US/a5532c9a-ece2-40cb-a8ac-4f53ba96175c/problem-with-rank-on-freetexttable?forum=sqldatabaseengine#f51bb4a9-725b-499f-961a-9492bed0a1f0
내가 틀린 질문을하면 죄송합니다. 그러나 두 서버의 순위는 상당히 다릅니다. 데이터를 살펴보면 두 서버의 인덱스 열은 같은 값을 갖지만 순위는 20 이상 차이가납니다. 그게 정상이라고 생각하니? – Jie
내가 이해하는 한 순위는 검색 결과를 주문하기위한 것입니다. 순위에 따라 정렬 된'containstable '의 결과가 동일하다면, 절대 순위 값은 거의 무의미하다. –