문제

알았어 이게 상황이야..

테이블에서 전체 텍스트 검색을 활성화하고 있지만 일부 필드에서만 작동합니다.

CREATE FULLTEXT CATALOG [defaultcatalog]
CREATE UNIQUE INDEX ui_staticid on static(id)
CREATE FULLTEXT INDEX ON static(title_gr LANGUAGE 19,title_en,description_gr LANGUAGE 19,description_en) KEY INDEX staticid ON [defaultcatalog] WITH CHANGE_TRACKING AUTO

이제 다음이 결과를 가져오는 이유

Select * from static where freetext(description_en, N'str')

그리고 이것은 아닙니다 (둘 다 str이 포함된 텍스트를 가지고 있지만 ..)

Select * from static where freetext(description_gr, N'str')

(언어 사양 없이도 시도해 보았습니다 -이 경우 그리스어) (데이터베이스는 데이터베이스입니다.) BTW

Select * from static where description_gr like N'%str%'

잘 될거야 ..

모든 필드는 nvarchar 유형이고 _gr 필드에는 영어 및 그리스어 텍스트가 포함됩니다.(중요하지 않음)

모든 도움을 주시면 감사하겠습니다

도움이 되었습니까?

해결책

무슨 일이 일어나고 있는지 알아 내려고 노력 중입니다.여기서 이 쿼리로 무엇을 얻나요?

SELECT * FROM static WHERE FREETEXT(*, N'str')

검색할 열을 명시적으로 지정하지 않은 경우 예상한 결과가 제공됩니까?

또 다른 요점:귀하의 명세서에 잘못된 언어 ID가 있는 것 같습니다.SQL Server 온라인 설명서에 따르면:

문자열로 지정되면 언어_term은 syslanguages ​​시스템 테이블의 별칭 열 값에 해당합니다.문자열은 'Language_term'과 같이 단일 따옴표로 둘러싸여 있어야합니다. 정수로 지정할 때 Language_term은 실제 LCID입니다. 그것은 언어를 식별합니다.

인터넷에서 검색한 내용에 따르면 그리스어의 LCID는 19가 아닌 1032입니다.19 대신 1032로 시도해 볼 수 있나요?그게 차이가 있나요?

마크

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top