我需要爲我的應用程序中的大多數實體添加序列號,因爲我將並行運行一個Lucene搜索索引。在SQL Server中創建和修改的序列號
而不是必須運行一個持續的投票過程,或通過手動我的申請,我想下面的運行我的索引:
- 添加
Created
柱,以GETUTCDATE()
的默認值。 - 添加一個
Modified
列,其默認值爲GETUTCDATE()
。 - 添加
ON UPDATE
觸發,更新Modified
到GETUTCDATE()
表(可在此發生爲執行UPDATE?也就是說,它增加了SET [Modified] = GETUTCDATE()
到SQL查詢,而不是更新它單獨算賬?) - 的
ON UPDATE
觸發器將打電話給我的Lucene索引器來更新它的索引(這可能是一個xp_cmdshell
的調用,但是有沒有辦法向進程發送消息而不是啓動一個新的?我聽說我可以使用命名管道,但是你怎麼看使用Sproc或觸發器內的命名管道?(當然,搜索「SQL Server命名管道」給了我無關的結果)
這聽起來好嗎,我該如何解決小的子問題?
我無法想象觸發'xp_cmdshell'的觸發器會特別出色。如果您使用的是SQL Server,那麼FT索引可能更合適?另外,你將如何處理在同一個陳述中更新的多個記錄? – 2013-04-10 19:55:46
爲什麼不能在您的客戶端應用程序中調用Lucene索引器作爲客戶端過程的一部分,該過程調用執行更新的存儲過程? – 2013-04-10 20:02:48
同意@CharlesBretana;我寫了一篇博客文章,如何用NHibernate做到這一點,如果你感興趣的話,它的工作效果很好...... http://aclassicgeek.blogspot.com/2013/03/full-text-searching-in-nhibernate.html – 2013-04-10 20:05:42