예를 들어 검색 할 텍스트 데이터가 4 열인 검색 테이블이 있습니다.여러 열과 술어에 대해 CONTAINS가 포함 된 전체 텍스트 검색 - AND
나는 같은 것을 할 : 는는 용어 1 및 용어 2가 같은 열에있는 경우 사실를 돌려줍니다처럼
SELECT * FROM dbo.SearchTable
WHERE CONTAINS((co1, col2, col3, col4), 'term1 AND term2')
것 같습니다. AND로 모든 열을 포함하도록 지정하는 방법이 있습니까?
그렇지 않다면 제 생각에는 모든 검색 열을 JSON으로 연결하여 하나에 집어 넣는 것입니다. 그렇게하면 전체 텍스트를 검색 할 수 있지만 .NET에서 개별 열을 쉽게 추출 할 수 있습니다. 나는 인덱서가 이것에 문제가 없으며 JSON 문자와 따옴표를 사용하지 않을 것이라고 추정한다. 이 올바른지?
감사
편집
json으로 아이디어를 생각 크롤러는 또한 인덱스 속성 이름은 그래서 {이름}, {세부}, {long_details} 뭔가 이름을 변경해야 할 것이다 것 검색에서 선택되지 않도록 {x1}, {x2}, {x3}과 (와) 같이 표시됩니다. 그들이 너무 짧으면 어쨌든 색인을 생성하지 않기를 바랍니다.
EDIT2
I 시스템 중지 목록을 기반으로 Stoplist을 만들고 그에 속성 이름을 넣을 수 있습니다.
안녕하세요, 감사합니다. 나는 검색어를 구문 분석하고 쿼리를 동적으로 작성해야하기 때문에 첫 번째 옵션이 마음에 들지 않습니다 (가능하면 검색을 1 개의 내용으로 결합해야 함). 계산 된 열에 대해 더 많이 읽어야합니다. 나는 그들이 지속될 수 있다고 생각하지만, 나는 두 배나 많은 양의 데이터를 저장하려고한다. 계속 유지되지 않으면 쿼리 시간에 많은 영향을 미칩니 까? –
값 중 하나가 null 인 SQL의 문자열 연결은 전체 표현식을 null로 바꿉니다. "isnull (col, '')"와 같이 isnull을 사용하여 각 nullable 용어를 래핑하여이 문제를 해결할 수 있습니다. –