sql >> データベース >  >> RDS >> Sqlserver

フルテキスト インデックスに対する混合クエリ

    私があなたの質問を正しく理解していれば、あなたが問題を経験することはないと思います.私はよくフルテキストと B ツリーを組み合わせて素晴らしい結果を出しています。全文検索が実行されると、1 つの用語 (いくつかの SQL 統計を取得または取得する) を含むインデックス付きの列と同様に、区切られた各「用語」がインデックスとして検索されます。いずれにせよ、SQL はその実行パスを把握する必要があります。全文検索では、整数値/日付値の比較は優先されません。区切りデータの文字列の照合には特に適しています。

    あなたは、b ツリーの概念の効率性を有利に利用し続けたいと思うでしょう。全文カタログ インデックス検索は、"LIKE" を使用して文字列を解析/比較する状況でははるかに有利ですが、はるかに回りくどい検索のように見えます。

    私がしていることは:

     SELECT * FROM MyTable
      WHERE CONTAINS(columnName, '"Toy Dog" OR "live animal"')
        AND start_date > ###;
    

    (構文情報については、この msdn 記事 を参照してください) )

    追記整数データを全文索引付けするときは、ストップリストをオフにして、それらの値がカタログの索引付けで無視されないようにします。

    それが役立つことを願っています! (誰も答えていないので、私の経験を話そうと思いました)




    1. 行あたり8060バイト、(varchar、nvarchar)値あたり8000バイトの制限にどのように到達しますか?

    2. postgresql9.3。すべての列なしでグループ化

    3. 5億行を超える行を処理できるデータベース

    4. Pyspark DataFrameWriter jdbc関数のignoreオプションは、トランザクション全体を無視しますか、それとも単に問題のある行を無視しますか?