有人可以建議的想法,如何將用戶輸入(少量字)匹配到系統中適當的標籤(每個標籤也是1或N個字)?用戶搜索關鍵字與標籤的匹配
這裏是示例來演示問題: 我有一個標籤,分配給對象。例如(標籤昏迷分開的,但在現實生活中,我有關係表)
Object Tags
Earth World, reality
World of warcraft 3 World Of warcraft, virtual reality
quake game, virtual
我想獲得如下:
用戶輸入「世界‘:結果是’地球 '
用戶輸入' 魔獸世界的 ':結果是' 魔獸世界3'的
這很簡單,精確搜索。但是:
用戶輸入 '遊戲世界 ':結果應該是由兩個標籤 - ' 地球', '地震'
用戶輸入 '虛擬現實':返回所有3個記錄
用戶輸入 '現實虛擬':地球,地震
我正在使用t-sql進行搜索,全文搜索已啓用並用於在主文本中查找關鍵字。 C#是中間層。但我更喜歡在t-sql級別上有解決方案。
更新1 首先我所要做的,是不允許空格標籤,像計算器。任何其他想法都會被提升。
好點。不過,我擔心在C#級別將所有關鍵字組合與標籤匹配的速度會變慢。 – st78 2009-10-16 08:47:15
情況正好相反。除非您擁有大量關鍵字(> 100MB),否則不需要全文索引。你總是可以用嵌套的hashtables/dictionnaries來實現c#索引。 – Manu 2009-10-16 08:59:25
雖然,除非你的數據庫(這是唯一的),你實際上可以有多個使用C#代碼的服務器......這裏有自然的平行性! – 2009-10-16 09:02:43