1
一部のレコードのみをフルテキストカタログに保存する方法はありますか?たとえば、私たちは、このレコードが有効かどうRecActiveは意味の列SQL Serverの一部の行のみを保存する全文検索カタログ
Id, VatNumber, Name, Street, ....other fields ...,
RecCreatedOn, RecCreatedBy, RecModifiedOn, RecModifiedBy, RecActive
列を持つテーブルtaxablePersonを持っています。レコードは、私が実行検索するとき、彼らはRecActive = 0を設定することによって削除され、削除されません。
SELECT TOP 50 *
FROM TaxPerson.TaxablePerson AS tp
INNER JOIN CONTAINSTABLE(TaxPerson.TaxablePerson, (Name), @find) AS key_table
ON key_table.[key] = tp.id
WHERE tp.RecActive = 1
ORDER BY key_table.rank DESC;
パフォーマンスは、内部結合を用いないことにより、非常に良いです。 RecActive = 1のレコードだけを全文検索カタログに入れる方法はありますか?これはms sql ftsの優れた機能です。
これはあなたが探しているものです。フィルタリングされたインデックスhttps://www.simple-talk.com/sql/performance/introduction-to-sql-server-filtered-indexes/? – Aditya
@Adityaこれは解決策ですが、[全文検索インデックス](https://msdn.microsoft.com/en-us/library/ms187317.aspx)はフィルタリングをサポートしていません。たとえば、 'TaxPersonの全文索引作成。TaxPersonFTS_Catalog WHERE TaxPerson.RecActive = 1'上の.TaxablePerson(Name)キーインデックスID。とにかく、フィルタリングされたインデックスを作成できるようになりました。 – broadband