2016-03-23 13 views
1

Tam metin kataloğuna yalnızca bazı kayıtları kaydetmenin bir yolu var mı? Örneğin bu kaydın geçerli olup olmadığını RecActive demektir sütunlarSadece bazı satırları SQL Server'da tam metin arama kataloğunda kaydedin

Id, VatNumber, Name, Street, ....other fields ..., 
RecCreatedOn, RecCreatedBy, RecModifiedOn, RecModifiedBy, RecActive 

Kolon ile bir tablo taxablePerson var. Kayıtlar ben çalıştırmak arama yaptığınızda onlar RecActive = 0 değerini ayarlayarak silinir, silinen alamadım:

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; 

Performans iç birleşim başvurusu yapmayarak çok iyidir. Sadece tam metin arama kataloğu için RecActive = 1 olan kayıtları koymak için bir yolu var mı. Bu ms sql fts büyük bir özellik olacaktır.

+1

Umarım, aradığınız şey budur. Filtrelenmiş dizinler https://www.simple-talk.com/sql/performance/introduction-to-sql-server-filtered-indexes/? – Aditya

+0

@Aditya bu bir çözüm olurdu, ancak [tam metin arama dizini] (https://msdn.microsoft.com/en-us/library/ms187317.aspx), TaxPerson'da tam metin dizini oluşturmak gibi bir şeyi filtrelemeyi desteklemiyor VergiPersonFTS_Catalog NEREDE TaxPerson.RecActive = 1' .TaxablePerson (Name) anahtar endeksi. Neyse ki şimdiye kadar bilmedim, filtrelenmiş dizinler oluşturabilirsiniz. – broadband

cevap

0

BİR GÖRÜNÜM oluşturabilir ve ardından bir tam metin dizini görünümüne ekleyebilirsiniz.

İlgili konular