파일 이름 구조와 같은 트리를 저장하는 테이블이 있습니다. 현재이 테이블에는 8 백만 개의 레코드가 있습니다. 나는 특정 일련 번호가 이름에 포함되어있는 파일 목록을 빨리 찾는 방법을 연구 중이다. 합니다 (NODE_NAME에 저장된)파일 이름에 전체 텍스트 검색 사용
FS_NODES
-----------------------------------
NODE_ID bigint PK
ROOT_ID bigint
PARENT_ID bigint
NODE_TYPE tinyint
NODE_NAME nvarchar(250)
REC_MODIFIED_UTC datetime
REC_DELETION_BIT bit
예 파일 이름 :
scriptname_SomeSerialNumber_201205240730.xml 예상대로
는 파일을 찾을 수있는 LIKE 문은 전체 테이블을 스캔하는 데 몇 분 정도 소요 향상 싶습니다 이. 각 개발자가 고유 한 이름 지정 규칙을 만드는 것을 좋아하기 때문에 일관된 이름 패턴이 없습니다.
전체 텍스트 검색을 사용해 보았지만 아이디어가 정말 좋았지 만 이름에 키워드를 기반으로 파일을 찾을 수 없었습니다. 문제는 밑줄로 인한 것 같습니다.
어떻게 작동시킬 수 있습니까? 카탈로그에 중립적 인 언어를 사용하고 있습니다.
@@VERSION
Microsoft SQL Server 2005 - 9.00.4035.00 (Intel X86)
Nov 24 2008 13:01:59
Copyright (c) 1988-2005 Microsoft Corporation
Standard Edition on Windows NT 5.2 (Build 3790: Service Pack 2)
카탈로그를 변경하고 키워드를 수동으로 분리하는 방법이 있습니까? 감사합니다.
일반적인 명명 규칙이 작동하지만 앞으로 나아갈 때만 도움이됩니다. 파일 이름은 여러 키워드를 포함 할 수 있으며 fts로 검색하는 식 트리 스타일을 좋아합니다. 나는 이것이 당신의 전형적인 "말"이 아니라는 것을 안다. 그러나 밑줄을 긋기 위해 이상적인 해결책이 될 것이다. 내 계획 B는 이름에서 패턴을 찾아 내고 키워드를 분석하고 태그를 붙이는 것이지만 그렇게하면 쉽게 끝난다. 귀하의 의견에 감사드립니다. – RickCard
제안한대로 계산 된 열을 추가 했으므로 FTS가 카탈로그의 해당 열을 사용할 수있었습니다. 새 열에 대해 CONTAINS 쿼리를 다시 시도하고 분과 비교하여 밀리 초 내에 예상대로 레코드를 반환했습니다. :) 고맙습니다! – RickCard