2010-06-13 38 views
2

我正在開發一個非常基本的網絡搜索引擎原型,現在我想知道什麼是分析用戶原始查詢並檢測什麼的最佳方法誰想要搜索。像谷歌,必應,雅虎等..什麼是分析用戶原始查詢並檢測想要搜索什麼的最佳方式

一個例子用戶原始查詢是這樣的:

Google+Maps+"South+Africa"+Brazil+OR+Italy+OR+Spain+-Argentina+Netherlands 

,我想這種分裂,每學期(單)這樣的泛型列表:

IEnumerable<KeyValuePair<TermType, string>> 
<TermType.All, "Google"> 
<TermType.All, "Maps"> 
<TermType.Exact, "South"> 
<TermType.Exact, "Africa"> 
<TermType.Any, "Brazil"> 
<TermType.Any, "Italy"> 
<TermType.Any, "Spain"> 
<TermType.None, "Argentina"> 
<TermType.None, "Netherland"> 

我不想完整的代碼,我想這是幫我寫最適合分析用戶原始查詢指導,解決方案,提示或任何東西。

在此先感謝

+0

你的例子是錯誤的。 – SLaks 2010-06-13 02:44:18

+0

嗯...,你能給我正確的嗎? – Sadegh 2010-06-13 03:07:39

+0

您的示例的正確解析是: ((Google和MAPS和「Soutch Africa」和巴西和荷蘭)和(意大利或西班牙))NOT(阿根廷)AND部分之前的AND可以理解爲POSSBILY,而不是Google的解析文字。 – 2010-06-13 10:05:42

回答

1

不要認爲根據查詢字符串。首先考慮您希望允許的邏輯搜索操作,以及您的引擎如何滿足它們。

如何從一個或多個查詢字符串中翻譯每一組邏輯操作,然後變成實現細節。

+0

它被翻譯成流行的搜索引擎一樣,每個詞從左邊(或基於語言可以從右側)開始並過濾每個術語的搜索結果(按每個術語檢測到的TermType)。 – Sadegh 2010-06-13 08:47:09

相關問題