4

MS SQL全文検索では、クエリでISABOUTを使用しています。

たとえば、これはテーブル内のフィールドをProductIDs持つトップ10(PK)を返す必要がありますRANKProductDetails

SELECT * 
FROM CONTAINSTABLE( ProductDetails, *, ISABOUT("Nikon" WEIGHT (1.0), "Cameras" Weight(0.9)), 10 )

ただし、SQLドキュメント ISABOUTによると非推奨です。

だから、私は2つの質問があります:

  1. ISABOUTに置き換えられますか?
  2. そこに余分なSQL Commandものが必要ですか?(IOW、検索フレーズ「Nikon Cameras」を入れるだけの方がいいでしょうか?)

私が最初にここで達成しようとしていたのは、最初の単語を最も高く、次に2番目の単語をより低く重み付けし、0.5まで下げ続け、残りの単語を0.5にランク付けすることでした。

私の論理(そしておそらくそれは欠陥がある)は、人々の最も関連性のある検索語は通常、フレーズの先頭近くで発生するというものでした(英語)。

  • 私はこれを間違った方法で行っていますか?
  • もっと良い方法はありますか?
  • 質問が多すぎませんか?(^ _ ^)

お時間をいただきありがとうございます...

4

2 に答える 2

6

上記のリンクはエンタープライズ検索を参照していますが、SQL Server全文検索の場合、ISABOUTはCONTAINS述語およびCONTAINSTABLE関数の一部として引き続きサポートされます。

この質問は、MSDNSQLServer検索フォーラムへの投稿でも取り上げられました。

于 2010-04-07T23:53:40.450 に答える
2

ISABOUT返されたドキュメントのランク付けに役立つカスタムの重みを単語に追加します。の場合CONTAINS()、ランキングは行われず、この形式は影響しません。

于 2016-11-21T23:11:18.133 に答える