質問

私は、ファイルストリームとvarchar型(最大)の列により作成されたフルテキストインデックスが有効になっています。ファイルストリームは、JPGの、TIFの、PDFの、およびXMLの(これは質問にほとんど無関係ですが、私は信じている)。

などのデータが含まれています

私は私が指数に検索できるように、私が作成したという2つのクエリを持っています。

-

全文は、#1を検索します

select
      parentObj.ObjectID as 'GroupingID',
      parentObj.Name as 'Grouping',
      childObj.ObjectID as 'FileObjID', 
      childObj.Name as 'FileName',
      fs.FileStreamID
    from dbo.dat_FileStream fs
    inner join dbo.dat_Object childObj
        on fs.ObjectID = childObj.ObjectID
    inner join dbo.dat_Collection c
        on fs.ObjectID = c.ObjectID
    inner join dbo.dat_Object parentObj
        on c.ParentID = parentObj.ObjectID
    where contains(FileStreamData, @srchTerm)
        and parentObj.ObjectTypeID = 1
    ORDER BY 'Grouping'

-

全文は#2を検索します

select
      KEY_TBL.RANK,
      parentObj.ObjectID as 'GroupingID',
      parentObj.Name as 'Grouping',
      childObj.ObjectID as 'FileObjID',
      childObj.Name as 'FileName',
      fs.FileStreamID
    from dbo.dat_FileStream fs
    inner join containstable(dbo.dat_FileStream, FileStreamData, @srchTerm, 1000) as KEY_TBL
        on fs.FileStreamID = KEY_TBL.[KEY]
    inner join dbo.dat_Object childObj
        on fs.ObjectID = childObj.ObjectID
    inner join dbo.dat_Collection c
        on fs.ObjectID = c.ObjectID
    inner join dbo.dat_Object parentObj
        on c.ParentID = parentObj.ObjectID
    where parentObj.ObjectTypeID = 1
    ORDER BY 'Grouping'

は2つのフルテキスト検索との唯一の大きな違いは、クエリ#1の用途が含まれていると、クエリ#2の用途CONTAINSTABLEです。

私の問題は、2つのクエリが常に同じ結果が得られていないということです。たとえば、クエリ#2はこれだけであるように思わ6の結果セットをもたらすだろうが、私は、クエリ#1 10枚の異なるドキュメント(PDF者とXMLの)の結果セットをもたらすであろう、というフレーズ「独立請負業者」を検索していましたルール:クエリ#1は常にクエリ#2、およびクエリ#2よりもさらにいくつかをもたらし、常にクエリ#1がないことを正確に同じ一致が得られます。

クエリ#1 - "独立請負業者" 収量に検索:

4262    AAA-00-12   4561    AAA-00-12.pdf   4235
4316    AAA-00-15   4753    AAA-00-15.pdf   4427
4316    AAA-00-15   4754    AAA-00-15.xml   4428
3873    AAA-00-19   4784    AAA-00-19.pdf   4458
3903    AAA-00-22   6795    AAA-00-22.pdf   6459
3953    AAA-00-24   6899    AAA-00-24.pdf   6563
3953    AAA-00-24   6900    AAA-00-24.xml   6564
4842    AAA-00-9    4905    AAA-00-9.pdf    4577
4842    AAA-00-9    4906    AAA-00-9.xml    4578
4057    AAA-0001    4260    AAA-0001.pdf    3936

クエリ#2 - "独立請負業者" 収量に検索:

19  4262    AAA-00-12   4561    AAA-00-12.pdf   4235
126 4316    AAA-00-15   4754    AAA-00-15.xml   4428
126 4316    AAA-00-15   4753    AAA-00-15.pdf   4427
116 3873    AAA-00-19   4784    AAA-00-19.pdf   4458
125 3903    AAA-00-22   6795    AAA-00-22.pdf   6459
57  3953    AAA-00-24   6900    AAA-00-24.xml   6564
57  3953    AAA-00-24   6899    AAA-00-24.pdf   6563
役に立ちましたか?

解決

CONTAINSTABLEするます:

  

top_n_by_rank

     唯一nhighestが降順に、マッチをランク付けしていること

を指定し、   返されます。ときにのみ適用されます   整数値、Nは、指定されています。もし<強いです>   top_n_by_rankが組み合わされます   パラメータは、クエリが返すことができます   行数より少ない行   実際にすべて一致していること   述語。の

トップoをワット/を実行してみてください、それがCONTAINSと一致するかどうかを確認します。

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