全文検索(SQL Server 2005は)いくつかのフィールドでのみ動作します
-
12-09-2019 - |
質問
OKこれは状況です..
私はテーブルの上に全文検索を可能にしていますが、それは唯一のいくつかの分野に取り組んでいます..
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')
( - ギリシャ語この場合、私は言語仕様せず、また、それを試してみました) (照合、データベースのGreek_CI_ASです) ところで
Select * from static where description_gr like N'%str%'
うまく動作します..
すべてのフィールドがnvarchar型のタイプであり、_grフィールドは、英語やギリシャ語のテキストを保持...(関係ありません)。
すべてのヘルプは大歓迎されます。
解決
ただ、何が起こっているのかを把握しよう:?あなたはここで、このクエリで何を得るのです。
SELECT * FROM static WHERE FREETEXT(*, N'str')
あなたは明示的に検索するための任意の列を指定していない場合 - それはあなたが期待する結果が得られない。
?もう一つのポイント:私はあなたの文で間違った言語のIDを持っていると思います。 SQL Serverオンラインブックによるます:
の文字列として指定し、 language_termは、エイリアスに対応します syslanguages内の列値 システムテーブル。文字列でなければなりません 単一引用符で囲みます 「language_term」インチをする場合に指定 整数として、language_termであります 識別し、実際のLCID を 言語ます。
と私の周り探してインターネット上で見つけたものから、ギリシャ語のLCIDは1032である - ない19.あなたは1032年の代わりに19を試すことはできますか?それが違いを生むのか?
マルク
所属していません StackOverflow