我有一個基本的數據表,它可以在此示例中是完全通用的,除了它包含Username
列。將搜索添加到linq查詢中
我想要一個簡單的文本框和在Username
字段上執行相似搜索的按鈕。我知道我可以使用.Contains()
方法,它會在sql中轉換爲LIKE
,但是這是做到這一點的正確方法嗎?
其次,假設我還有另一個項目,我還想搜索多對多關係,在這種情況下爲Label
。
Data
{
ID,
Name,
...
}
Many
{
DataID,
OtherID
}
Other
{
ID,
Label
}
我最終想找到所有的數據項與一個標籤類似於一些搜索條款。我是否再次使用.Contains?
然後我想排序以在同一查詢中獲得用戶名和標籤的最佳匹配;如何將{用戶名和標籤}的組合形式排序?
編輯:LIKE查詢的結果如何排序?它只是基於索引,並且它匹配的二進制文件與它不匹配?我想我並不擔心每個人說的相似性得分,我或多或少地只是想知道這種機制。看起來它很容易返回LIKE查詢,但我一直認爲LIKE是一個糟糕的選擇,因爲它不使用數據庫中的索引。這是真的,如果是這樣嗎?
第二個鏈接是激烈的。它非常酷,知道像史密斯水手這樣的東西可以在SQL中完成。我已經或多或少的意識到,我將要做的最好的結果是喜歡或不喜歡的二元結果,而且大多數情況下這很好。我主要是在詢問相似性搜索的難度;看來,在我的情況下,不值得麻煩。 – Shawn 2010-10-09 06:29:29
客戶端可以在此處使用C#庫: - http://code.google.com/p/google-diff-match-patch/ – 2010-10-09 06:46:24
+1 v。有用的鏈接。謝謝。 – 2010-10-09 08:10:25