質問

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を試すことはできますか?それが違いを生むのか?

マルク

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top